(非推奨) Helm を使用して、Kubernetes クラスターにコンテナーをデプロイする(DEPRECATED) Use Helm to deploy containers on a Kubernetes cluster

ヒント

Azure Kubernetes Service を使用したこの記事の更新版については、「Azure Kubernetes Service (AKS) での Helm を使用したアプリケーションのインストール」を参照してください。For the updated version this article that uses Azure Kubernetes Service, see Install applications with Helm in Azure Kubernetes Service (AKS).

警告

Azure Container Service (ACS) は非推奨となっています。ACS に新しい機能が追加されることはありません。API、ポータルのエクスペリエンス、CLI コマンド、ドキュメントはすべて非推奨としてマークされます。The Azure Container Service (ACS) is being deprecated. No new features or functionality are being added to ACS. All of the APIs, portal experience, CLI commands and documentation are marked as deprecated.

Azure Kubernetes Service (AKS) は、Kubernetes の管理、デプロイ、および運用を簡素化するために 2017 年に導入されました。In 2017, we introduced Azure Kubernetes Service (AKS) for simplifying Kubernetes management, deployment, and operations. Kubernetes オーケストレーターを使用する場合は、2020 年 1 月 31 日までに AKS に移行してください。If you use the Kubernetes orchestrator, please migrate to AKS by January 31, 2020. まずは、Azure Kubernetes Service への移行に関するページを参照してください。To get started, see migrate to Azure Kubernetes Service.

詳細については、Azure.com で Azure Container Service の非推奨化に関するお知らせを参照してください。For more information, see the Azure Container Service deprecation announcement on Azure.com.

Helm は、Kubernetes アプリケーションのライフサイクルをインストールおよび管理するのに役立つオープン ソースのパッケージ化ツールです。Helm is an open-source packaging tool that helps you install and manage the lifecycle of Kubernetes applications. Apt-get や Yum などの Linux パッケージ マネージャーと同様に、Helm は、構成済みの Kubernetes リソースのパッケージである Kubernetes チャートの管理に使用されます。Similar to Linux package managers such as Apt-get and Yum, Helm is used to manage Kubernetes charts, which are packages of preconfigured Kubernetes resources. この記事では、Azure Container Service にデプロイされる Kubernetes クラスター上の Helm と連携する方法について説明します。This article shows you how to work with Helm on a Kubernetes cluster deployed in Azure Container Service.

Helm には、次の 2 つのコンポーネントがあります。Helm has two components:

  • Helm CLI は、ローカルまたはクラウドのコンピューターで実行するクライアントです。The Helm CLI is a client that runs on your machine locally or in the cloud

  • Tiller は、Kubernetes クラスター上で実行され、Kubernetes アプリケーションのライフサイクルを管理するサーバーです。Tiller is a server that runs on the Kubernetes cluster and manages the lifecycle of your Kubernetes applications

前提条件Prerequisites

Helm の基礎Helm basics

Tiller をインストールしてアプリケーションをデプロイする Kubernetes クラスターについての情報を表示するには、次のコマンドを入力します。To view information about the Kubernetes cluster that you are installing Tiller and deploying your applications to, type the following command:

kubectl cluster-info 

kubectl cluster-info

Helm をインストール後、次のコマンドを入力して、Kubernetes クラスターに Tiller をインストールします。After you have installed Helm, install Tiller on your Kubernetes cluster by typing the following command:

helm init --upgrade

インストールが正常に完了すると、次のような出力が表示されます。When it completes successfully, you see output like the following:

Tiller インストール

レポジトリで使用可能なすべての Helm チャートを表示するには、次のコマンドを入力します。To view all the Helm charts available in the repository, type the following command:

helm search 

次のような出力結果が表示されます。You see output like the following:

Helm 検索

チャートを更新して最新バージョンを取得するには、次のように入力します。To update the charts to get the latest versions, type:

helm repo update 

Nginx イングレス コントローラー チャートをデプロイするDeploy an Nginx ingress controller chart

Nginx イングレス コントローラー チャートをデプロイするには、次の 1 つのコマンドを入力します。To deploy an Nginx ingress controller chart, type a single command:

helm install stable/nginx-ingress 

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

kubectl get svc を入力して、クラスターで実行されているすべてのサービスを表示すると、イングレス コントローラーに IP アドレスが割り当てられていることがわかりますIf you type kubectl get svc to view all services that are running on the cluster, you see that an IP address is assigned to the ingress controller. (割り当て操作の実行中に、<pending> が表示されます。(While the assignment is in progress, you see <pending>. 完了するまでに数分かかります)。It takes a couple of minutes to complete.)

IP アドレスが割り当てられたら、外部 IP アドレスの値に移動して、Nginx がバックエンドで実行されていることを確認します。After the IP address is assigned, navigate to the value of the external IP address to see the Nginx backend running.

イングレス IP アドレス

クラスターにインストールされているチャートの一覧を表示するには、次のように入力します。To see a list of charts installed on your cluster, type:

helm list 

コマンドを helm ls に短縮できます。You can abbreviate the command to helm ls.

MariaDB チャートとクライアントをデプロイするDeploy a MariaDB chart and client

ここで、MariaDB チャートと MariaDB クライアントをデプロイしてデータベースに接続します。Now deploy a MariaDB chart and a MariaDB client to connect to the database.

MariaDB チャートをデプロイするには、次のコマンドを入力します。To deploy the MariaDB chart, type the following command:

helm install --name v1 stable/mariadb

ここで --name は、リリースに使用されるタグです。where --name is a tag used for releases.

ヒント

デプロイメントが失敗した場合は、helm repo update を実行してもう一度お試しください。If the deployment fails, run helm repo update and try again.

クラスターにデプロイされているすべてのチャートを表示するには、次のように入力します。To view all the charts deployed on your cluster, type:

helm list

クラスターで実行されているすべてのデプロイメントを表示するには、次のように入力します。To view all deployments running on your cluster, type:

kubectl get deployments 

最後に、ポッドを実行してクライアントにアクセスするには、次のように入力します。Finally, to run a pod to access the client, type:

kubectl run v1-mariadb-client --rm --tty -i --image bitnami/mariadb --command -- bash  

クライアントに接続するには、次のコマンドを入力して、デプロイメントの名前を v1-mariadb に置き換えます。To connect to the client, type the following command, replacing v1-mariadb with the name of your deployment:

sudo mysql –h v1-mariadb

ここで、標準の SQL コマンドを使用して、データベース、テーブルなどを作成することができます。たとえば、Create DATABASE testdb1; は空のデータベースを作成します。You can now use standard SQL commands to create databases, tables, etc. For example, Create DATABASE testdb1; creates an empty database.

次の手順Next steps

  • Kubernetes チャートの管理に関する詳細については、「Helm ドキュメント」を参照してください。For more information about managing Kubernetes charts, see the Helm documentation.