GNU/Linux >> Linux の 問題 >  >> Ubuntu

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 Ubuntu18.04EC2インスタンスで1つのマスターと2つのノードを持つKubernetesクラスターを作成するのに役立ちます。
  2. マスターノードにインストールされたHelm(Helmの基本を理解してインストールするには、「Helmとは何かとUbuntu 20.04サーバーにインストールする方法」という名前の私の記事を検索してください)。

何をしますか?

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

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

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

ヘルムバージョン

例として、ハブから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チャートからサンプルアプリケーションをデプロイしました。システムでヘルムチャートを作成してリリースする手順も確認しました。これに加えて、ヘルムチャートを削除し、以前のバージョンにロールバックし、チャットを削除した後もリリース履歴を保持する方法を学びました。


Ubuntu
  1. ヘルムチャートを作成する方法

  2. HelmChartを使用してKubernetesにElasticsearchをインストールする

  3. Ubuntu18.04LTSのKubernetesクラスターにNginxロードバランシングをデプロイする方法

  1. KubernetesにElasticsearchをデプロイする方法

  2. KubernetesにWordPressインスタンスをデプロイする方法

  3. KubernetesにRedisクラスターをデプロイする方法

  1. ヘルムチャートをプルおよびプッシュする方法

  2. KubernetesにRabbitMQをデプロイする方法

  3. helminstallコマンドの使用方法