Azure AKS Automatic に Elasticsearch をデプロイする方法

部分的に管理された Elasticsearch セットアップ構成のために、AKS Automatic と ECK を使用して Azure に Kibana とともに Elasticsearch をデプロイする方法を学習します。

Elasticsearchは初めてですか?Elasticsearchを使い始めるウェビナーに参加しましょう。無料のクラウドトライアルを始めるか、今すぐマシンでElasticを試すこともできます。

この記事は、さまざまなインフラストラクチャを使用して Elasticsearch をインストールする方法を説明するシリーズの一部です。

ECK はマーケットプレイスベースの Elastic Cloud ソリューションよりも大幅に多くの労力を必要としますが、Kubernetes オペレーターがシステム オーケストレーションとノードのスケーリングを処理するため、VM を自分でデプロイするよりも自動化されています。

今回は、Automatic を使用して Azure Kubernetes Service (AKS) を操作します。他の記事では、 Azure VMAzure Marketplace の使用方法について学習します。

AKS Automatic とは何ですか?

Azure Kubernetes Service (AKS) は、クラスターのセットアップを自動的に管理し、リソースを動的に割り当て、Kubernetes の柔軟性を維持しながらセキュリティのベスト プラクティスを統合するため、開発者はコンテナー イメージからデプロイされたアプリケーションまでを数分以内に実行できます。

AKS Automatic は、クラスター管理のオーバーヘッドの大部分を排除し、シンプルさと柔軟性のバランスを適切にとります。適切な選択はユースケースによって異なりますが、次のことを計画すると決定が容易になります。

  • テスト環境をデプロイする:デプロイは高速かつ簡単なので、簡単な実験や短期間のクラスターに最適です。
  • 厳密な VM、ストレージ、またはネットワーク要件なしで作業: AKS Automatic では定義済みのデフォルトが提供されるため、それがニーズに合えば、追加の構成を行う必要がなくなります。
  • Kubernetes を初めて使用する場合: AKS Automatic はクラスターのセットアップの大部分を処理するため、学習曲線が短縮され、チームはアプリケーションに集中できるようになります。

Elasticsearch では、Elastic Stack の Kubernetes デプロイメント オーケストレーションを簡素化する公式 Elastic Kubernetes オペレーターであるElastic Cloud on Kubernetes (ECK) を使用します。

AKS Automaticの設定方法

1. Microsoft Azure ポータルにログインします。

2.右上の Cloud Shellボタンをクリックし、コンソールにアクセスしてそこから AKS クラスターをデプロイします。あるいは、 Azure Cloud Shell を使用することもできます。

チュートリアル中にプロジェクト ID を自分のものに更新することを忘れないでください。

AKS を開くと、上のスクリーンショットのようになります。

3. aks-preview Azure CLI 拡張機能をインストールします。このプレビュー バージョンでは、クラスターの作成時に--sku automaticを選択できるようになり、AKS Automatic 機能が有効になります。

このメッセージが表示された場合、AKS 拡張機能が正しくインストールされたことを意味します。

4. az feature registerコマンドを使用して機能フラグを登録する

作成した機能サブスクリプションの詳細が表示されます。

登録ステータスが「登録中」から「登録済み」に変わるまで確認します。登録が完了するまでに数分かかる場合があります。

変更を伝播するにはaz provider registerを実行します。

5. リソースグループを作成する

リソース グループは、管理およびデプロイされる Azure リソースの論理グループです。

6. Autopilot クラスターを作成します。これをmyAKSAutomaticCluster に名前を付け、先ほど作成したリソース グループを使用します。AKS がリソースを割り当てるには、 Standard_D4pds_v5 Standard_D4lds_v5 Standard_D4ads_v5 Standard_D4ds_v5Standard_D4d_v5 、 Standard_D4d_v4 Standard_DS3_v2 Standard_DS12_v2 のいずれかの VM サイズで 16 個の vCPU が使用可能であることを確認してください。

* MissingSubscriptionRegistrationエラーが発生した場合は、不足しているサブスクリプションを使用して手順4に戻ってください。たとえば、 The subscription is not registered to use namespace ' microsoft.insights '実行中のサブスクリプションが必要です。az provider register --namespace Microsoft.Insights.

対話型ログインに従ってください:

「az login」の実行を求めるメッセージが表示されます。そのコマンドを実行してから待つ必要があります。

7. 準備ができるまで待ちます。作成には約10分かかります。

8. kubectl コマンドライン アクセスを構成します。

インストールした拡張機能によって AKS Automatic が有効になっていることに注意してください。

9. ノードがデプロイされたことを確認します。

禁止エラー メッセージが表示されます。エラーからユーザー ID をコピーします。

10. ユーザーを AKS アクセス制御に追加します。

AKS ID を取得します。コマンドからの出力をコピーします。

AKS ID とユーザーのプリンシパル ID を使用してロールの割り当てを作成します。

11. ノードが再度デプロイされたことを確認します。

12. Kubernetes (ECK) オペレーターに Elastic Cloud をインストールします。

13. デフォルト値を使用して、単一ノードの Elasticsearch インスタンスを作成しましょう。

デフォルトの AKS マシンのvm.max_map_count値が低すぎるため、 nmapを無効にしました。本番環境では無効にすることは推奨されませんが、 vm.max_map_countの値を増やすことは推奨されます。これを行う方法の詳細については、ここを参照してください。

14. Kibana シングルノード クラスターもデプロイしましょう。Kibana の場合は、ロード バランサーを追加します。これにより、デバイスから Kibana にアクセスするために使用できる外部 IP が提供されます。

デフォルトでは、AKS Automatic はロード バランサーをパブリックとして構成します。メタデータ アノテーションを設定することで動作を変更できます。

service.beta.kubernetes.io/azure-load-balancer-internal: "true"

15. ポッドが実行中であることを確認します。

16.Elasticsearch のバージョン、ノード、健全性などのより具体的な統計情報を取得するには、 kubectl get elasticsearchkubectl get kibanaを実行することもできます。

17. サービスにアクセスします。

これにより、EXTERNAL-IP の下に Kibana の外部 URLが表示されます。ロードバランサーのプロビジョニングには数分かかる場合があります。EXTERNAL-IP の値をコピーします。

18. 'elastic' ユーザーの Elasticsearch パスワードを取得します。

19. ブラウザからKibana にアクセスします

a. URL: https://<EXTERNAL_IP>:5601

b. ユーザー名:elastic

c. パスワード:c44A295CaEt44D6xIzN6Zs5m (前の手順から)

20.ブラウザから Elastic Cloud にアクセスすると、ようこそ画面が表示されます。

ノードの変更やサイズ変更など、Elasticsearch クラスターの仕様を変更する場合は、新しい設定で YML マニフェストを再度適用できます。

この例では、さらに 1 つのノードを追加し、RAM と CPU を変更します。ご覧のとおり、 kubectl get elasticsearchには 2 つのノードが表示されています。

Kibana にも同じことが当てはまります。

コンテナのCPU/RAMとNode.jsのメモリ使用量( max-old-space-size )を調整できます。

既存のボリュームクレームを縮小することはできないことに留意してください。アップデートを適用した後、オペレーターは最小限の中断時間で変更を加えます。

不要なコストを避けるために、テストが完了したらクラスターを忘れずに削除してください。

まとめ

Azure AKS Automatic を ECK と併用すると、Elasticsearch と Kibana をデプロイするためのバランスの取れたソリューションが提供されます。これにより、運用の複雑さが軽減され、スケーリングと更新が自動化され、Kubernetes の柔軟性が活用されます。このアプローチは、インフラストラクチャの詳細をすべて手動で管理することなく、信頼性が高く、繰り返し可能で、保守可能なデプロイメント プロセスを求めるチームに最適であり、テスト環境と本番環境の両方にとって実用的な選択肢となります。

今後の見通し

Kubernetes について詳しく知りたい場合は、次の公式ドキュメントをご覧ください。

関連記事

最先端の検索体験を構築する準備はできましたか?

十分に高度な検索は 1 人の努力だけでは実現できません。Elasticsearch は、データ サイエンティスト、ML オペレーター、エンジニアなど、あなたと同じように検索に情熱を傾ける多くの人々によって支えられています。ぜひつながり、協力して、希望する結果が得られる魔法の検索エクスペリエンスを構築しましょう。

はじめましょう