(非推奨) 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 アプリケーションのライフサイクルを管理するサーバーです。

前提条件

Helm の基礎

Tiller をインストールしてアプリケーションをデプロイする Kubernetes クラスターについての情報を表示するには、次のコマンドを入力します。

kubectl cluster-info 

kubectl cluster-info

Helm をインストール後、次のコマンドを入力して、Kubernetes クラスターに Tiller をインストールします。

helm init --upgrade

インストールが正常に完了すると、次のような出力が表示されます。

Tiller インストール

レポジトリで使用可能なすべての Helm チャートを表示するには、次のコマンドを入力します。

helm search 

次のような出力結果が表示されます。

Helm 検索

チャートを更新して最新バージョンを取得するには、次のように入力します。

helm repo update 

Nginx イングレス コントローラー チャートをデプロイする

Nginx イングレス コントローラー チャートをデプロイするには、次の 1 つのコマンドを入力します。

helm install stable/nginx-ingress 

イングレス コント ローラーをデプロイする

kubectl get svc を入力して、クラスターで実行されているすべてのサービスを表示すると、イングレス コントローラーに IP アドレスが割り当てられていることがわかります (割り当てが進行中の場合は、次が表示されます <pending>。完了するまでに数分かかります)。)

IP アドレスが割り当てられたら、外部 IP アドレスの値に移動して、Nginx がバックエンドで実行されていることを確認します。

イングレス IP アドレス

クラスターにインストールされているチャートの一覧を表示するには、次のように入力します。

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; 空のデータベースを作成します。

次のステップ