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