開発のバックグラウンドをお持ちの方なら、おそらくパッケージマネージャーという言葉をご存知でしょう。パッケージマネージャーを使用すると、依存関係のインストール、バージョンのアップグレードやダウングレードなどを行うことができます。このチュートリアルでは、非常に人気のあるパッケージマネージャーについて見ていきます。対象はKubernetes用のHelm.
です。Helmは、次の管理を支援します:Kubernetesアプリケーション。Helmを使用すると、アプリケーションのメタデータ、依存関係、および設定を指定して、Kubernetesアプリケーションを定義できます。また、HelmはKubernetes上にアプリケーションをインストールするだけでなく、アプリケーションのアップグレードやダウングレードも行うことができます。最後に、Helmファイルを使用してアプリケーションを他のユーザーと共有できます。このチュートリアルでは、Windows OS上でHelm 3をインストールする方法、およびチャートとリリースのセットアップ、アップグレード、ロールバック、管理を行う方法を紹介します。
始めましょう!
前提条件
チュートリアルを始める前に、まず以下のインストールが完了していることを確認する必要があります。
-
Windows上でKubernetesのセットアップがまだの場合は、Docker Desktopから始めるのが最も簡単です。次へアクセスしてください:https://www.docker.com/products/docker-desktop。Docker Desktopをダウンロードしてインストールします。このチュートリアルではWindowsを使用します。そのため、WSL 2 Backendをインストールする必要があります。これはWindows用のLinuxサブシステムであり、Dockerのサポートを有効にします。

一度Docker Desktopの準備ができたら、次へ進みます:Settings -> Kubernetes。そして、次のオプションにチェックを入れます:Enable Kubernetes:


すべてが正常に動作しているか確認するには、使用しているシステムに応じてターミナルまたはPowerShellを開き、以下のコマンドを入力します。
|
1 |
kubectl |
以下の出力が表示されれば、準備は完了です。

あるいは、Ubuntuで作業することを選択した場合は、詳細なガイドに従うことができます:Ubuntu 20.04にKubernetesをインストールして使用する方法.
さらに、インストールプロセスを開始する前に、Helmに関連するいくつかの重要な用語を見てみましょう。
-
Charts
KubernetesのYAMLファイルは、Helmチャートにパッケージ化されています。
-
Helm Repositories
Helmはリポジトリをサポートしています。Helmリポジトリは、他のユーザーが使用できるようにHelmチャートを格納する場所です。Helmを使用すると、独自のリポジトリを作成できるほか、サードパーティのリポジトリもサポートされます。
-
Tiller
Tiller is the server component of Helm. It needs to be installed on the Kubernetes cluster. It takes the Helm Chart and configures the cluster accordingly.
また、当社のHelmの詳細な概要を説明しているブログ記事もご覧ください。この記事では、Kubernetesへのアプリケーションデプロイを簡素化するHelmの手法について説明しています。
それでは、始める準備が整いました!
ステップ 1: Helm 3のインストール
Helm 3のインストールは簡単なプロセスです。リリースはHelmのGitHubページで入手できます。選択したOSに基づいて、使用するリリースをダウンロードできます。このチュートリアルではWindows OSを使用するため、Windowsの場合は以下の手順に従ってください。
-
GitHubページから、Windows用のHelmバイナリをダウンロードします。
-
ダウンロードが完了すると、圧縮されたアーカイブがダウンロードフォルダ、またはダウンロード先に指定した場所に保存されます。
-
次に、このアーカイブを都合の良い場所に移動して解凍します。解凍されたコンテンツの中にhelm.exeファイルが見つかるはずです。

-
フォルダの場所をコピーし、システムの環境変数のPATH変数に追加します。
-
完了したら、ターミナルを開き、以下のコマンドを入力します。
|
1 |
helm |
以下の出力が表示されれば、Helmのインストールは完了です。その後、次のステップに進むことができます。

ステップ 2: リポジトリのセットアップとHelmチャートのインストール
Helmはリポジトリへのアクセスと管理をサポートしています。リポジトリはHelmチャートが保存される場所です。初期状態では、Helmは独自のリポジトリを持っていません。むしろ、Helmは管理者やDevOpsスペシャリストが独自のリポジトリを作成することを推奨しています。つまり、クラスターにMongoDBを導入したい場合は、自分でHelmリポジトリに追加する必要があります。リポジトリを見つけるには、Artifact.ioを使用できます。これは、すべてのHelmチャートのオープンソースカタログであり、CNCFによって管理されています。.
以下では、リポジトリをセットアップし、ソフトウェアをダウンロードしてインストールする方法を説明します。ここではMongoDBのインストールを例として取り上げます。KubernetesクラスターにMongoDBをインストールすると仮定します。インストールのために以下の手順に従ってください:
-
まず、以下にアクセスします:https://artifacthub.io.
-
次に、MongoDBを検索します。検索すると、多くのオプションが表示されます。私たちが関心があるのは、MongoDB by Bitnami:

-
検索が完了すると、さまざまなオプションが表示されます。各チャートの横に、パブリッシャー、バージョン、およびその他の関連情報が表示されます。目的のチャートが見つかったら、それを選択する必要があります。ここでは、MongoDB by Bitnamiをクリックします:

-
これで、いよいよ技術的な部分を開始できます。全体的な説明を見ると、サービスをインストールしたい人のための優れたガイドが用意されていることがわかります。さまざまなオプション、設定、パラメータ、チャートの削除方法、その他必要な情報について確認できます。次のボタンを見つけてください:Installボタンをクリックします:

-
MongoDBをインストールするために必要なものはすべてここにあります。まず、リポジトリを追加する必要があり、その後にチャートをインストールする必要があります。リポジトリを追加するには、ターミナルを開いて次のコマンドを入力します:
|
1 |
helm repo add bitnami https://charts.bitnami.com/bitnami |
以下の出力が表示されます:

リポジトリのセットアップが完了したので、チャートをインストールする必要があります。ダイアログからコマンドをコピーして実行します:
|
1 |
helm install my-mongodb bitnami/mongodb --version 10.23.10 |
プロセスが完了すると、MongoDBの準備はすべて整います。
ステップ 3: リリースの管理
ソフトウェア開発において、リリース管理は極めて重要です。以前のバージョンにアップデートしたり、ロールバックしたりする必要がある場合は常にあります。幸いなことに、Helmでのリリース管理は比較的簡単なプロセスです。Helmはバージョン番号を保持しているため、いつでも以前のバージョンにロールバックできます。同様に、アプリケーションがデプロイされて稼働しており、設定を変更する必要があると仮定します。Helmはこれにも対応しています。以下では、これらの操作を実行するのに役立ついくつかのベストプラクティスについて説明します。
-
アプリケーションをアップデートする方法
たとえば、 values.YAMLファイルで、アプリケーションのインスタンスを2つ実行する必要があると指定したとします。これは、アプリケーションの高可用性が必要なためかもしれません。しかし後になって、アプリケーションに3つのインスタンスが必要であることに気づきます。Helmを使用しない場合、まずアプリケーションを停止してから、設定して再デプロイする必要があります。Helmを使用すると、まず values.YAMLファイルで変更を行い、以下のコマンドを実行するだけです。Helmファイルが配置されているディレクトリで、次のコマンドを実行します:
|
1 |
helm upgrade <app-name> |
-
リリースをロールバックする方法
ここで、リリースが破損したと仮定します。間違ったポート番号やパスを設定してしまった可能性があります。以前のバージョンにロールバックするには、以下のコマンドを実行するだけで、Helmがリリースを以前のバージョンに戻します:
|
1 |
C:\> helm rollback <release> |
Helmがすべてのリリースとバージョニングを管理します。これは、KubernetesでHelmを使用する最大のメリットの1つです。アプリケーションのすべてのリリースを表示するには、HelmチャートとYAMLファイルが含まれるディレクトリで以下のコマンドを実行します:
|
1 |
helm history RELEASE |
ステップ 4: 独自のチャートを作成する
最後に、Helmに慣れ、その仕組みを理解したところで、独自のチャートを作成してみましょう。独自のカスタムチャートを作成することで、アプリケーションを簡単に配布したり、任意のリポジトリでホストしたりできます。以下に示す手順に従えば、チャートの作成は非常に簡単なプロセスです。まず、ターミナルを開いて以下のコマンドを実行します:
|
1 |
helm create <chart-name> |
これにより、指定した名前のディレクトリが作成されます。ここでは、次の名前を使用しています: my-app. Let’s see the contents of the folder:
|
1 2 |
cd my-app ls |
以下のような構造になります:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
charts/ templates/ ├─ tests/ │ ├─ test-connection.yaml ├─ deployment.yaml ├─ hpa.yaml ├─ ingress.yaml ├─ NOTES.txt ├─ service.yaml ├─ serviceaccount.yaml ├─ _helpers.tpl ├─ .helmignore ├─ Chart.yaml ├─ values.yaml |
出力内容の概要は以下の通りです:
- charts フォルダ – 依存するチャートを追加するために使用されます。
- templates フォルダ – クラスターにデプロイされる設定。
- YAML ファイル – Helm チャート構造の概要。
- YAML ファイル – チャートを設定するためのフォーマット情報。
次に、以下の手順に従ってチャートをインストールおよび設定します:
-
イメージとプルの設定
次のファイルを開きます: values.YAML ファイル。ここで image ノードを見つけます。その後、必要に応じて設定できます。指定可能な値は IfNotPresent, Always, Latest です。すべての値のセットは公式ドキュメントで確認できます。
-
チャート名のオーバーライド
このステップは任意なので、必要に応じてスキップできます:

-
サービス名
次のファイルを開きます:
values.YAML ファイルを開き、次の項目を探します:
serviceName。その後、希望する名前を追加します。チャートをインストールする前に名前を用意しておくと便利です:

-
チャートのインストール
最後に、チャートをインストールするには以下のコマンドを実行します:
|
1 |
helm install <full name override> <chart name>/ --values <chart name>/values.yaml |
クラスターにデプロイする前に、チャートを設定するために用意されているすべてのオプションを注意深く確認することをお勧めします。
開発者が Helm を好む理由
Helm は、デプロイの起動や停止を頻繁に行う必要がある開発者や DevOps スペシャリストの間で人気を集めています。以下は Helm の主なメリットの一部です:
-
Helm はデプロイプロセスを簡素化します。新しく学習することは何もなく、既存の YAML デプロイをユーザーが簡単に設定できるようにします。
-
クラスター数やポートなどの設定を頻繁に変更する代わりに、Helm を使用すると簡単に設定できるようになります。ユーザーが行う必要があるのは、次のファイル内の値を更新することだけです: values.YAML ファイル。
-
Helm を使用すると、アプリケーションをリポジトリにパッケージ化して他のユーザーと共有できます。
結論
このチュートリアルでは、Windows 上で Helm パッケージマネージャーをゼロからセットアップする方法を説明しました。Helm のパワーを活用するために明確に理解しておくべき、さまざまな重要な概念について見てきました。また、Helm で探索したリポジトリ内で利用可能なさまざまな機能についても確認しました。これで Helm に慣れ親しみ、次の Kubernetes プロジェクトやデプロイに実装できるようになるはずです。
Kubernetes とその機能に関する知識をさらに深めるには、当ブログの他のチュートリアルをご覧ください:
- Kubernetes について知る
- Ubuntu 18.04 で Kubeadm を使用して Kubernetes クラスターを作成する方法
- Ubuntu 18.04 の Kubernetes クラスターに PHP アプリケーションをデプロイする
ハッピーコンピューティング!
コメント
コメントはまだありません。最初のコメントを投稿しましょう。