この記事は、私の記事「Helmとは何ですか?Ubuntu20.04サーバーにインストールする方法」の続きです。 Helmを初めて使用する場合は、最初に私が言及した記事を読むことをお勧めします。 この記事では、既存のチャートからApacheをリリースします。 サンプルチャートを作成し、リリース、アップグレード、ロールバック、削除、復元します。 後の記事で使用する前に、コマンドを簡単に見てみましょう。
- ヘルム検索:ヘルムチャートを検索する
- ヘルムレポ:リポジトリで追加、一覧表示、削除、更新、インデックス作成などの操作を実行します
- ヘルム削除:チャートを削除すると、Kubernetesオブジェクトがすべて削除されます。
- ヘルムステータス:リリースのステータスを表示します。
- ヘルムクリエイト:ヘルムチャートを作成します。
- ヘルムインストール:チャートをインストールすると、Kubernetesオブジェクトが作成されます
- ヘルムのアップグレード:リリースに加えた変更を加えてアップグレードします。
- ヘルムの歴史:リリースの履歴を取得します。
- ヘルムロールバック:変更を以前のバージョンに戻します。
先に進む前に、Helmの基本に精通していることを前提としています。 また、Kubernetesクラスターとhelmクライアントが既にインストールされていることも前提としています。
前提条件
- 少なくとも1つのワーカーノードを持つKubernetesクラスター。
Kubernetesクラスターの作成方法を学びたい場合は、ここをクリックしてください。 このガイドは、AWS Ubuntu 18.04EC2インスタンスで1つのマスターと2つのノードを持つKubernetesクラスターを作成するのに役立ちます。 - マスターノードにインストールされたHelm(Helmの基本を理解してインストールするには、「Helmとは何かとUbuntu 20.04サーバーにインストールする方法」という名前の私の記事を検索してください)。
何をしたらいいでしょう?
- リポジトリからサンプルチャートをリリースします。
- チャートを作成し、サンプルアプリケーションをリリースします。
- リリースをアップグレードします。
- 削除後にリリースを復元する
リポジトリからサンプルチャートをリリースします
まず、「ヘルム」がサーバー上で利用可能かどうかを確認しましょう。
ヘルムバージョン
例として、ハブからApacheチャートをインストールしてみましょう。 次のコマンドを実行して、ハブ上のApacheを検索します。
ヘルムサーチハブアパッチ
結果のセットを取得し、Apacheの検索の1つのURLをコピーします。 この場合、最初のURLをコピーしました。
WebブラウザでURLを押すと、次のようなページが表示されます。
このページでは、ローカルシステムにリポジトリを追加し、そこからチャートをインストールするためのコマンドを取得します。
ローカルシステムでコマンドを実行すると、Apacheチャートのリポジトリが追加されます。
helm repo add bitnami https://charts.bitnami.com/bitnami
ヘルムレポリスト
システムにリポジトリができたら、チャートをインストールし、Helmを使用してApacheのリリースを作成する準備が整います。
helm install my-release bitnami / apache
コマンドが正常に実行されると、上記のような出力が表示されます。
チャートがリリースされると、Kubernetesクラスターで作成されたオブジェクトを確認できます。
kubectlgetノード
kubectl getpods
これで、ポッドのIPを取得し、curlコマンドを使用してApacheページにアクセスしてみることができます。
kubectl get pods -o wide
kubectl get svc
カール10.244.1.2:8080
リリースを削除したい場合は、次のコマンドを使用するだけで削除できます
ヘルム削除マイリリース
クラスタ上のリリースを一覧表示して、リリースが正常に削除されたかどうかを確認できます。
ヘルムls
ヘルムステータスマイリリース
チャートを作成し、サンプルアプリケーションをデプロイします
上記のシナリオでは、すぐに利用可能で構成されたチャートをインストールしました。 独自のチャートを作成して、アプリケーションをリリースできます。 ヘルムを使用すると、チャートの作成は非常に簡単です。 次のコマンドを実行すると、Nginxのサンプルアプリケーションを含むグラフが表示されます。
ヘルムは私の最初のチャートを作成します
上記のコマンドを使用して作成したグラフのフォルダー構造を調べます。
cd my-first-chart /
ls -l
ls-lチャート/
ls-lテンプレート/
ls-lテンプレート/テスト/
Chart.yamlファイルの内容を確認してください。
ls -lt
猫Chart.yaml
values.yamlの内容を確認してください
ls -lt
cat values.yaml
次に、ローカルチャートを使用してサンプルアプリケーションをデプロイしましょう。
pwd
cd ..
ls -l | grep my-first-chart
kubectl getpods
helm install my-first-release my-first-chart /
チャートが正常にリリースされると、クラスターで作成されたポッドが表示されます。
kubectl getpods
kubectl get svc
これで、サービスを介してNginxポッドにアクセスできます。
カール10.104.229.187
次のコマンドを使用して作成したリリースに関する情報を見つけることができます。
ヘルムls
ヘルムステータスmy-first-release
リリースをアップグレードする
上記のシナリオでは、サンプルのNginxアプリケーションを使用してグラフを作成しました。 上記のシナリオのレプリカ数は1でした。レプリカ数を増やしたい場合は、values.yamlファイルに変更を加えることで簡単に行うことができます。
cat my-first-chart / values.yaml | grepレプリカ
vim my-first-chart / values.yaml
cat my-first-chart / values.yaml | grepレプリカ
ヘルムls
これで、変更を簡単にロールアウトしてリリースをアップグレードできます。
ヘルムアップグレードmy-first-releasemy-first-chart /
2に更新されたリリースのリビジョンに気付くことさえできます。
ヘルムls
今回は、レプリカ数を2に指定したため、クラスター内で2つのポッドが実行されていることがわかります。
kubectl getpods
ヘルムls
リリースの履歴を確認すると、リリースには2つのリビジョンがあることがわかります。 リビジョン1には1つのポッドがあり、後でレプリカ数を2に更新して、リリースのリビジョン2を作成しました。
ヘルムヒストリーmy-first-release
リビジョン2でリリースされた変更を望まず、リビジョン1に戻したい場合は、次のロールバックコマンドを使用して簡単に行うことができます。
ヘルムロールバックmy-first-release1
ヘルムls
そして、これにより、リリースのリビジョン3が作成されます。
ヘルムヒストリーmy-first-release
これで、クラスターで実行されているポッドが1つだけであることがわかります。
kubectl getpods
チャートからリリースされたサンプルNginxアプリケーションを削除したい場合は、リリースを削除することで削除できます。
ヘルムls
ヘルムは私の最初のリリースを削除します
ヘルムls
削除後にリリースを復元する
上記のシナリオでは、リリースを削除しました。 ただし、デフォルトでは、リリースは削除されたときにリリース履歴を保持しません。 このようなシナリオで元に戻したい場合は、deletereleaseコマンドに–keep-historyオプションを指定しない限り元に戻すことはできません。
ヘルムls
helm install my-second-release my-first-chart /
ヘルムls
リリースの削除中に–keep-historyオプションを指定すると、ヘルムは新しいリリースバージョンを作成します。 このようにして、リリースまたはアプリケーションを削除した後でも、以前の作業バージョンに戻すことができます。
helm delete my-second-release –keep-history
ヘルムls
ヘルムls-a
ヘルムヒストリーmy-second-release
ヘルムロールバックmy-second-release1
ヘルムls
ヘルムヒストリーmy-second-release
結論
この記事では、インターネットで入手可能なHelmチャートからサンプルアプリケーションをデプロイしました。 システム上にヘルムチャートを作成してリリースする手順も確認しました。 これに加えて、Helmチャートを削除し、以前のバージョンにロールバックし、チャットを削除した後でもリリース履歴を保持する方法を見ました。
Hope this helps!