Elasticsearch on Kubernetes: 新しい歴史の始まり
Kubernetes Operatorパターンに基づいた新しい制御プロダクト、Elastic Cloud on Kubernetes(ECK)がリリースされました。ECKを使って、KubernetesでElasticsearchを設定、管理、運用することができます。
Kubernetesはここ数年で、コンテナーとアプリケーション制御のデファクトスタンダードフレームワークとなっています。Elasticsearchコミュニティでもこのトレンドは例外ではありません。Elastic Cloud on Kubernetesはあらゆるユーザーの環境に適応するというElasticのポリシーを体現し、またユーザーが選んだプラットフォームでElasticプロダクトをデプロイ・運用する際の最高のソリューションとなります。
以前からElasticsearchとKibana向けのDockerオフィシャルイメージのリリースや、podやDaemonSetからログとメトリックを収集するためBeatsの変更など、ElasticとKubernetesの関わりは長く続いてきました。昨年12月にはCNCFへの参加とHelm Chartsのリリースもあり、ますますコミットメントを深めています。ですから、ElasticのユーザーにKubernetes環境でのデプロイ・運用を簡単にする取り組みやソリューションの提供は自然な流れでした。
Operatorにとどまらないメリット
ECKはKubernetes Operatorパターンを用いて開発されており、ユーザーのKubernetesクラスターにインストールして使用します。KubernetesでElasticsearchやKibanaのデプロイする手順をシンプル化するだけでなく、多くのメリットをもたらします。デプロイ後の運用では、次のようなタスクをスムーズに行うことが可能です。
- 複数のクラスターを管理、監視
- Elastic Stackの新しいバージョンへのアップグレード容易に
- クラスター容量のスケールアップ/スケールダウン
- クラスター設定の変更
- ローカルストレージ(ローカルストレージドライバーのElastic Local Volumeを含む)の動的なスケール
- 定期的なバックアップ
ECKは単なるKubernetes Operatorではありません。運用とクラスター管理タスクを自動化するだけでなく、Kubernetes上のElasticsearchのエクスペリエンス全体がスムーズになるよう設計されています。ECKの開発ビジョンは、Kubernetes上でSaaSのようにElasticのプロダクトやソリューションを提供することです。
デフォルトでセキュアに
ECKで立ち上げるすべてのElasticsearchクラスターはデフォルトで安全に保たれています。すなわち、作成された時点から通信の暗号化が有効で、デフォルトの強力なパスワードで保護されています。これにより、従来よりElastic Cloudで提供されるElasticsearch Serviceと一貫した、安全なエクスペリエンスを実現しています。
デフォルトでセキュアなエクスペリエンスをシームレスに提供することは、それほど簡単ではありませんでした。別のブログでもご紹介していますが、これはElastic Stackのセキュリティ機能の変更で可能になりました。長いので三行にまとめると:バージョン6.8および7.1より、TLS暗号化、ロールベースアクセス制御、ファイルとネイティブ認証を含むElasticsearchの主要なセキュリティ機能が無料でデフォルト搭載されます。
Canvas、Maps、Uptime
ECKでデプロイするすべてのクラスターは、ベーシックサブスクリプションに含まれる各種のパワフルな機能(フローズンインデックス、KibanaのSpaces、Canvas、Elastic Mapsほか)を搭載しています。さらにElastic LogsやElastic Infrastructureアプリを使用してKubernetesのログとインフラを監視することも可能です。Kubernetesでの完全なElastic Stackエクスペリエンスであり、現在はElasticだけが提供するサービスです。
Hot-Warm-Coldデプロイとカスタムトポロジー
Hot-Warm-Coldは、ロギングやメトリック、その他の時系列データのユースケースでパワーを発揮するElasticsearchクラスタートポロジーです。ストレージの保存期間とパフォーマンスの最適なバランスを、リーズナブルな方法で実現するアーキテクチャーパターンとして広く使用されています。ECKのユーザーはKubernetesでHot-Warm-Coldクラスターをデプロイし、インデックスライフサイクル管理(ILM)を使用してデータライフサイクルのポリシーを手軽に設定して、古くなったデータをノード間で移動させることができます。
たとえエクスペリエンスに圧縮アルゴリズムがなくても
ソフトウェアをデプロイするとき、Day1はそれほど大変ではありません。ところが、Day2となると話は別です。Kubernetesのように動的なオーケストレーションフレームワーク内でElasticsearchのようなステートフルなシステムの運用を最適化するには、多くの要素を考慮する必要があります。動的にスケール可能で、持続可能なローカルストレージを構築するには、一体どうすればよいでしょうか?そこでElasticはECKで使えるKubernetes向けの統合ストレージドライバー、"Elastic Local Volume"を開発しました。スケールダウンの前にノードを空にしておく、スケールアップに伴ってシャードの再バランス化を図るなど、多数のベストプラクティスを詰め込んでいます。
Elastic Cloud on Kubernetesは、何年にもわたるElasticsearchとElastic Cloud Enterpriseの開発や運用の知見とElasticsearch Serviceのフィードバックを活かして開発されました。KubernetesでElasticsearchやKibanaのデプロイを制御・運用する経験をすべてコード化したとも言えます。
設定変更でデータロスが生じないことや、スケールのダウンタイムがゼロになるなど、ECKの安全な運用のためにあらゆる手を尽くしています。
永久に無料提供
Elasticsearchの初期の頃から、私たちの目標は変わっていません。つまり、「パワフルな機能を無料で、デフォルトの配布で新しいユーザーに提供し、導入の瞬間から優れたエクスペリエンスにすること」です。ECKもこの例外ではありません。
デフォルトのECKは永久に無料で配布されます。オープン性と透明性を掲げるElasticは、ECKの全ソースコードを一般に公開しています。Elastic Licenseに基づき、cloud-on-k8s GitHub repositoryでライセンス提供されています。
エンタープライズサブスクリプション(有償)では、フィールドとドキュメントレベルのアクセス制御、Machine Learning、Graph分析をはじめ、高度な有償オプションを使ったクラスターのデプロイが可能になっています。今後、エンタープライズサブスクリプションにはさらに高度な制御機能の追加提供が予定されています。
オフィシャルGKEのサポートと、今後の追加予定
初回、そしてアルファ版となる今回のECKは、Google Kubernetes Engine(GKE)とvanilla Kubernetes version 1.11以降をサポートしています。ECKの今後のリリースでは、この他のバージョンのKubernetesへもサポートを拡大する予定です。
今すぐ使いはじめる
下のKubernetesクラスターを実行して、今すぐ使いはじめることができます。詳しい情報を記載したクイックスタートページもありますので、ご活用ください。