(非推奨) Helm を使用して、Kubernetes クラスターにコンテナーをデプロイする
ヒント
Azure Kubernetes Service を使用したこの記事の更新版については、「Azure Kubernetes Service (AKS) での Helm を使用したアプリケーションのインストール」を参照してください。
警告
Azure Container Service (ACS) は非推奨となっています。 ACS に新しい機能が追加されることはありません。 API、ポータルのエクスペリエンス、CLI コマンド、ドキュメントはすべて非推奨としてマークされます。
Azure Kubernetes Service (AKS) は、Kubernetes の管理、デプロイ、および運用を簡素化するために 2017 年に導入されました。 Kubernetes オーケストレーターを使用する場合は、2020 年 1 月 31 日までに AKS に移行してください。 まずは、Azure Kubernetes Service への移行に関するページを参照してください。
詳細については、Azure.com で Azure Container Service の非推奨化に関するお知らせを参照してください。
Helm は、Kubernetes アプリケーションのライフサイクルをインストールおよび管理するのに役立つオープン ソースのパッケージ化ツールです。 Apt-get や Yum などの Linux パッケージ マネージャーと同様に、Helm は、構成済みの Kubernetes リソースのパッケージである Kubernetes チャートの管理に使用されます。 この記事では、Azure Container Service にデプロイされる Kubernetes クラスター上の Helm と連携する方法について説明します。
Helm には、次の 2 つのコンポーネントがあります。
Helm CLI は、ローカルまたはクラウドのコンピューターで実行するクライアントです。
Tiller は、Kubernetes クラスター上で実行され、Kubernetes アプリケーションのライフサイクルを管理するサーバーです。
前提条件
Azure Container Service で Kubernetes クラスターを作成する
ローカル コンピューターで
kubectl
をインストールおよび構成するローカル コンピューターで Helm をインストールする
Helm の基礎
Tiller をインストールしてアプリケーションをデプロイする Kubernetes クラスターについての情報を表示するには、次のコマンドを入力します。
kubectl cluster-info
Helm をインストール後、次のコマンドを入力して、Kubernetes クラスターに Tiller をインストールします。
helm init --upgrade
インストールが正常に完了すると、次のような出力が表示されます。
レポジトリで使用可能なすべての Helm チャートを表示するには、次のコマンドを入力します。
helm search
次のような出力結果が表示されます。
チャートを更新して最新バージョンを取得するには、次のように入力します。
helm repo update
Nginx イングレス コントローラー チャートをデプロイする
Nginx イングレス コントローラー チャートをデプロイするには、次の 1 つのコマンドを入力します。
helm install stable/nginx-ingress
kubectl get svc
を入力して、クラスターで実行されているすべてのサービスを表示すると、イングレス コントローラーに IP アドレスが割り当てられていることがわかります (割り当てが進行中の場合は、次が表示されます <pending>
。完了するまでに数分かかります)。)
IP アドレスが割り当てられたら、外部 IP アドレスの値に移動して、Nginx がバックエンドで実行されていることを確認します。
クラスターにインストールされているチャートの一覧を表示するには、次のように入力します。
helm list
コマンドを helm ls
に短縮できます。
MariaDB チャートとクライアントをデプロイする
ここで、MariaDB チャートと MariaDB クライアントをデプロイしてデータベースに接続します。
MariaDB チャートをデプロイするには、次のコマンドを入力します。
helm install --name v1 stable/mariadb
ここで --name
は、リリースに使用されるタグです。
ヒント
デプロイメントが失敗した場合は、helm repo update
を実行してもう一度お試しください。
クラスターにデプロイされているすべてのチャートを表示するには、次のように入力します。
helm list
クラスターで実行されているすべてのデプロイメントを表示するには、次のように入力します。
kubectl get deployments
最後に、ポッドを実行してクライアントにアクセスするには、次のように入力します。
kubectl run v1-mariadb-client --rm --tty -i --image bitnami/mariadb --command -- bash
クライアントに接続するには、次のコマンドを入力して、デプロイメントの名前を v1-mariadb
に置き換えます。
sudo mysql –h v1-mariadb
標準の SQL コマンドを使用して、データベース、テーブルなどを作成できるようになりました。たとえば、 Create DATABASE testdb1;
空のデータベースを作成します。
次のステップ
- Kubernetes グラフの管理の詳細については、 Helm のドキュメントを参照してください。