Helmを使用してKubernetesにアプリケーションをデプロイする方法

この記事は、私の記事「Helmとは何ですか?Ubuntu20.04サーバーにインストールする方法」の続きです。 Helmを初めて使用する場合は、最初に私が言及した記事を読むことをお勧めします。 この記事では、既存のチャートからApacheをリリースします。 サンプルチャートを作成し、リリース、アップグレード、ロールバック、削除、復元します。 後の記事で使用する前に、コマンドを簡単に見てみましょう。

  1. ヘルム検索:ヘルムチャートを検索する
  2. ヘルムレポ:リポジトリで追加、一覧表示、削除、更新、インデックス作成などの操作を実行します
  3. ヘルム削除:チャートを削除すると、Kubernetesオブジェクトがすべて削除されます。
  4. ヘルムステータス:リリースのステータスを表示します。
  5. ヘルムクリエイト:ヘルムチャートを作成します。
  6. ヘルムインストール:チャートをインストールすると、Kubernetesオブジェクトが作成されます
  7. ヘルムのアップグレード:リリースに加えた変更を加えてアップグレードします。
  8. ヘルムの歴史:リリースの履歴を取得します。
  9. ヘルムロールバック:変更を以前のバージョンに戻します。

先に進む前に、Helmの基本に精通していることを前提としています。 また、Kubernetesクラスターとhelmクライアントが既にインストールされていることも前提としています。

前提条件

  1. 少なくとも1つのワーカーノードを持つKubernetesクラスター。
    Kubernetesクラスターの作成方法を学びたい場合は、ここをクリックしてください。 このガイドは、AWS Ubuntu 18.04EC2インスタンスで1つのマスターと2つのノードを持つKubernetesクラスターを作成するのに役立ちます。
  2. マスターノードにインストールされたHelm(Helmの基本を理解してインストールするには、「Helmとは何かとUbuntu 20.04サーバーにインストールする方法」という名前の私の記事を検索してください)。

何をしたらいいでしょう?

  1. リポジトリからサンプルチャートをリリースします。
  2. チャートを作成し、サンプルアプリケーションをリリースします。
  3. リリースをアップグレードします。
  4. 削除後にリリースを復元する

リポジトリからサンプルチャートをリリースします

まず、「ヘルム」がサーバー上で利用可能かどうかを確認しましょう。

ヘルムバージョン

例として、ハブからApacheチャートをインストールしてみましょう。 次のコマンドを実行して、ハブ上のApacheを検索します。

ヘルムサーチハブアパッチ

ハブでチャートを検索する

結果のセットを取得し、Apacheの検索の1つのURLをコピーします。 この場合、最初のURLをコピーしました。

WebブラウザでURLを押すと、次のようなページが表示されます。

このページでは、ローカルシステムにリポジトリを追加し、そこからチャートをインストールするためのコマンドを取得します。

チャートのリポジトリの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

チャートによって作成されたKubernetesオブジェクトを確認します

リリースを削除したい場合は、次のコマンドを使用するだけで削除できます

ヘルム削除マイリリース

クラスタ上のリリースを一覧表示して、リリースが正常に削除されたかどうかを確認できます。

ヘルムls

ヘルムステータスマイリリース

リリースを削除する

チャートを作成し、サンプルアプリケーションをデプロイします

上記のシナリオでは、すぐに利用可能で構成されたチャートをインストールしました。 独自のチャートを作成して、アプリケーションをリリースできます。 ヘルムを使用すると、チャートの作成は非常に簡単です。 次のコマンドを実行すると、Nginxのサンプルアプリケーションを含むグラフが表示されます。

ヘルムは私の最初のチャートを作成します

上記のコマンドを使用して作成したグラフのフォルダー構造を調べます。

cd my-first-chart /

ls -l

ls-lチャート/

ls-lテンプレート/

ls-lテンプレート/テスト/

チャートを作成する

Chart.yamlファイルの内容を確認してください。

ls -lt

猫Chart.yaml

Chart.yamlを参照してください

values.yamlの内容を確認してください

ls -lt

cat values.yaml

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

チャートによって作成されたKubernetesオブジェクトを確認します

次のコマンドを使用して作成したリリースに関する情報を見つけることができます。

ヘルム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

ReplicaCountを変更し、リリースをアップグレードします

ヘルム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!

Source link