[クラウド ネイティブ] 一般的な Helm コマンド (チャートのインストール、アップグレード、ロールバック、アンインストールなど)

[クラウド ネイティブ] 一般的な Helm コマンド (チャートのインストール、アップグレード、ロールバック、アンインストールなど)

1. 概要

Helm Kubernetes 用の Helm パッケージ マネージャー。 Helm の一般的な操作:

  • ヘルム検索: 検索チャート
  • helm pull: チャートをローカルディレクトリにダウンロードして表示します
  • helm install: チャートをKubernetesにアップロードする
  • helm list: 公開されたチャートの一覧を表示する
 # ヘルプを表示
ヘルム--help

公式ドキュメント: https://helm.sh/zh/docs/helm/helm/

Helmアーキテクチャと基本構文の説明については、私の記事を参照してください:[クラウドネイティブ] Helmアーキテクチャと基本構文の詳細説明

2. Helm リポジトリ (helm repo)

チャート リポジトリを追加、一覧表示、削除、更新、およびインデックス付けします。

1) チャートリポジトリを追加する

 helmリポジトリbitnamiを追加しますhttps://charts.bitnami.com/bitnami

2) 追加されたリポジトリを一覧表示する

 helm リポジトリ リスト

3) チャートリポジトリからローカルで利用可能なチャート情報を更新する

 helm リポジトリの更新bitnami

4) 1つ以上のリポジトリを削除する

 helm リポジトリの削除 bitnami

3. チャートを作成する (helm create)

指定された名前で新しいチャートを作成します。このコマンドは、チャート ディレクトリと、チャートによって使用される共通ファイル ディレクトリを作成します。

たとえば、「helm create foo」は次のようなディレクトリ構造を作成します。

 $ ヘルム作成foo
フー/
├── .helmignore # Helm チャートをパッケージ化するときに無視するパターンが含まれます。
├── Chart .yaml # チャートに関する情報
├── values ​​.yaml # テンプレートのデフォルト
├── charts / # このチャートが依存するチャート
└── templates / # テンプレートファイル
└── tests / # テストファイル

4. チャートパッケージのインストール(helm install)

このコマンドはチャート パッケージをインストールするために使用されます。インストール引数は、チャート参照、パッケージ化されたチャート パス、パッケージ化されていないチャート ディレクトリ、または URL である必要があります。

チャート内の値を上書きするには、--values パラメータを使用してファイルを渡すか、--set パラメータを使用してコマンドラインで構成を渡します。文字列を強制するには、--set-string を使用します。値自体がコマンドラインに対して長すぎる場合、または動的に生成される場合は、--set-file を使用して別の値を設定できます。

 helm install -f myvalues ​​.yaml myredis ./redis

helm install --set name=prod myredis ./redis

helm インストール--set-string long_int=1234567890 myredis ./redis

helm をインストール--set-file my_script=dothings.sh myredis ./redis

5. チャート依存関係を管理する(helm依存関係)

  • Helm チャートは依存関係を 'charts/' に保存します。チャート開発者にとっては、すべての依存関係を宣言する「Chart.yaml」ファイルを持つよりも依存関係を管理する方が簡単です。
  • 依存関係コマンドはこのファイルに対して動作し、必要な依存関係を 'charts/' ディレクトリに保存されている実際の依存関係と簡単に同期できるようになります。

たとえば、Chart.yaml は 2 つの依存関係を宣言します。

 # チャート.yaml
依存関係:
-名前: nginx
バージョン: "1.2.3"
リポジトリ: "https://example.com/charts"
-名前: memcached
バージョン: "3.2.1"
リポジトリ: "https://another.example.com/charts"
  • name はチャート名であり、Chart.yaml ファイル内の名前と一致する必要があります。
  • バージョン フィールドには、セマンティック バージョンまたはバージョン範囲が含まれている必要があります。

2.2.0 以降では、リポジトリは、依存するチャートがローカルに保存されるディレクトリ パスとして定義できます。パスは「file://」プレフィックスで始まる必要があります。例:

 # チャート.yaml
依存関係:
-名前: nginx
バージョン: "1.2.3"
リポジトリ: "file://../dependency_chart/nginx"

1) 指定されたチャートの依存関係を一覧表示する

 # helm 依存関係リスト CHART
helm 依存関係リスト wordpress

2) 依存関係のアップグレード

Chart.yamlの内容に基づいてチャートをアップグレードする/

 # helm 依存関係更新CHART [フラグ]
helm 依存関係の更新wordpress

6. ヘルムリスト

  • リリースを一覧表示します。このコマンドは、指定された名前空間内のすべてのリリースを一覧表示します (名前空間が指定されていない場合は、現在の名前空間が使用されます)。
  • デフォルトでは、デプロイされたリリースまたは失敗したリリースのみがリストされます。 --uninstalled や --all などのオプションはデフォルトの動作を変更します。これらのパラメータは組み合わせて使用​​できます: --uninstalled --failed。
  • デフォルトでは、最大 256 個の項目が返されます。数を制限するには --max を使用します。 --max を 0 に設定すると、すべての結果が返されるのではなく、サーバーのデフォルト値が返されます。この値は 256 を超える場合があります。表示ページを切り替えるには、--max パラメータと --offset パラメータを一緒に使用します。
 # -すべて表示
ヘルムリスト--max=10 --offset=2 -A

7. バージョンのアップグレード(helm アップグレード)

このコマンドは、新しいバージョンにアップグレードされたチャートを公開します。アップグレード パラメータはリリースとチャートである必要があります。チャート パラメータには、チャート参照 ('example/mariadb')、チャート ディレクトリ パス、パッケージ化されたチャート、または完全な URL を指定できます。チャート参照の場合、「--version」パラメータを使用して指定しない限り、最新バージョンが使用されます。

 helm アップグレード--set foo=bar --set foo=newbar redis ./redis

8. リリース履歴(ヘルム履歴)

リリース履歴を取得し、指定されたバージョンの改訂履歴を印刷します。デフォルトでは、最大 256 個の履歴バージョンが返されます。返される履歴リストの最大長を設定するには、--max を設定します。

履歴リリースコレクションは、次のようにフォーマットされた表に印刷されます。

 $ ヘルム ヒストリーアングリーバード
改訂 更新されたステータスチャート アプリバージョンの説明
1 2016年103日月曜日10:15:13 alpine置き換えられまし- 0.1 .0 1.0初期インストール
2016年103月曜日10:15:13 alpine - 0.1 .0 1.0置き換えられまし正常にアップグレードされました
2016年103月曜日10:15:13 alpine置き換えられまし- 0.1 .0 1.0 2にロールバックされました
2016年103月曜日10:15:13alpine - 0.1.0デプロイされました1.0アップグレードされました

9. ロールバックバージョン(helm rollback)

リリースを以前のバージョンにロールバックします。ロールバック コマンドの最初のパラメータはリリース名であり、2 番目のパラメータはリビジョン (バージョン) 番号です。このパラメータを省略すると、以前のバージョンにロールバックされます。

 # helm rollback <リリース> [リビジョン] [フラグ]
# まず過去のバージョンを確認してください
ヘルムの歴史 myharbor - n ハーバー
# バージョンが指定されていない場合は、以前のバージョンにロールバックします
ヘルムロールバックmyharbor 1 - n ハーバー
ヘルムロールバックmyharbor - n ハーバー

10. チャート表示(ヘルムショー)

 # helm show all [チャート] [フラグ]
# このコマンドはチャートディレクトリ、ファイル、または URL をチェックし、すべての内容( values.yaml Chart.yaml README)を表示します。
helm すべてのmysqlを表示

# helm show values ​​[チャート] [フラグ]
# このコマンドはチャートディレクトリ、ファイル、またはURL をチェックし、値の.yamlファイルの内容を表示します
helmはmysqlのを表示します

11. プルチャート(舵取り)

リポジトリからダウンロードし、(オプションで)ローカル ディレクトリに解凍します。

 # helm pull [チャート URL |リポジトリ/チャート名] [ ... ] [フラグ]
# ダウンロードのみ
helm プル bitnami / redis
# 現在のディレクトリにダウンロードして解凍します
Helm pull bitnami / redis --untar

12. Helm パッケージ

  • チャート ディレクトリをチャート アーカイブにパッケージ化します。このコマンドは、チャートをチャート バージョン パッケージ ファイルにパッケージ化します。パスが指定されている場合、チャートはそのパスで検索され (Chart.yaml ファイルが含まれている必要があります)、ディレクトリがパッケージ化されます。
  • チャートに署名するには、--sign オプションを使用し、ほとんどの場合、--keyring path/to/secret/keys と --key keyname も指定します。
 helm パッケージ mysql /
#チャート正常にパッケージ化されの場所に保存されました: /opt/k8s/helm/mysql-9.3.1.tgz

helm 内のファイルを無視したい場合は、.helmignore で一致させることができます。 .helmignore ファイルは、Unix シェルのグローバル マッチング、相対パス マッチング、否定 (! プレフィックスを使用した逆マッチング) をサポートします。行ごとに 1 つのパターンのみが考慮されます。次に例を示します。

 # .helmignore
.git
*/一時*
*/*/ 一時*
温度は?

13. 海図を港に押し出す(舵をcm押しする)

チャートをリモート サーバーにプッシュします。

1) オンラインインストール

 helm プラグインのインストール https://github.com/chartmuseum/helm-push

2) オフラインインストール

ダウンロードアドレス: https://github.com/chartmuseum/helm-push/tags

 # 1.インストールパッケージをダウンロードする
https://github.com/chartmuseum/helm-push/releases/tag/v0.10.3をダウンロードしてください

# 2. helmのプラグインパスを確認する: helm env
ヘルム環境

# 3.このパスに helm - push フォルダーを作成し、インストール パッケージをこのフォルダーにコピーして解凍します。
mkdir /root/.local/share/helm/plugins/helm-push

https://github.com/chartmuseum/helm-push/releases/download/v0.10.3/helm-push_0.10.3_linux_amd64.tar .gzをダウンロードしてください

tar zxvf /root/.local/share/helm/plugins/helm-push / helm - push_0 .10 .3_linux_amd64 .tar .gz - C /root/.local/share/helm/plugins/helm-push

プラグインを表示

 helm プラグイン リスト

3) ハーバーリポジトリをヘルムに追加する

 # chartrepo、固定パラメータ、bigdata カスタム プロジェクト
helm リポジトリに local-harbor を追加します --username=admin --password=Harbor12345 https://myharbor.com/chartrepo/bigdata/ --ca-file /opt/k8s/helm/ca.crt

証明書はHarborから直接ダウンロードされます

4) 例のデモンストレーション

 # ヘルプを表示
ヘルムcm -push--ヘルプ

# プッシュして[ディレクトリ]に接続
helm cm -プッシュ mysql / local - harbor --ca-file /opt/k8s/helm/ca.crt

# プッシュして[圧縮パッケージ]を受信
helm cm -プッシュ wordpress - 15.1 .5 .tgzローカル- harbor --ca-file /opt/k8s/helm/ca.crt

# プッシュ、バージョン指定、 --version
helm cm - mychart をプッシュ/ --versinotallow="1.2.3" local-harbor --ca-file /opt/k8s/helm/ca.crt

# 強制プッシュ、 --force
helm cm - push --force mychart-0.3.2.tgz ローカルハーバー

チェック

14. 検索ハブ(ヘルム検索ハブ)

Artifact Hub または独自のハブ インスタンスでチャートを検索します。 Artifact Hub は、公開されている Helm チャートを含む CNCF プロジェクトのパッケージと構成項目の検索、インストール、公開をサポートする Web ベースのアプリケーションです。これは CNCF サンドボックス プロジェクトです。 https://artifacthub.io/ をご覧ください。

 # パラメータなしの場合は、すべてをリストします
ヘルム検索ハブ

# チャートを指定
helm 検索ハブ mysql

15. リポジトリの検索 (helm search repo)

チャート内のキーワードを使用してリポジトリを検索します。検索では、システム上で設定されているすべてのリポジトリが読み取られ、一致するものが検索されます。これらのリポジトリを検索するには、システムに保存されているメタデータを使用します。見つかったチャートの最新の安定バージョンが表示されます。 --devel オプションが指定されている場合、出力にはプレリリース バージョンが含まれます。

 # キーワード「nginx」に一致する安定リリースバージョンを検索します
$ helm リポジトリ nginx を検索

# プレリリース版を含むキーワード「nginx」に一致するリリース版を検索します
$ helm リポジトリを検索 nginx --devel

# メジャーバージョンが1の nginx - ingress の最新の安定リリースを検索します
$ helm リポジトリ nginx - ingress --version ^1.0.0 を検索します

16. チャートを検証する (helm lint)

このコマンドは、チャートのパスを取得し、チャートが正しくフォーマットされていることを確認するための一連のテストを実行します。チャートのインストールが失敗するような状況が発生した場合、[ERROR] メッセージが表示されます。規則や推奨事項に違反する問題が発生した場合、[警告] メッセージが表示されます。

 # helm lint PATH [フラグ]
ヘルムリント./mysql

17. 共通コマンドの概要

 helm バージョン// helm バージョンを表示する
helm create xxx // xxx チャートを作成する
helm lint ./xxx //パッケージの形式や情報に問題がないか確認します
helm install xxx1 ./xxx // xxx をデプロイしてインストールし、名前を xxx1 に設定します
helm list //デプロイされたチャートを一覧表示します
helm 履歴//リリース履歴
helm アップグレード//バージョンの更新
helm rollback //ロールバックバージョン
helm package ./xxx //パッケージチャート
helm repo add --username admin --password password myharbor xxx // リポジトリを追加
helm uninstall xxx1 // xxx1 をアンインストールして削除します
helm pull //チャートパッケージをプルする
helm cm - push //チャートパッケージをプッシュする
helm repo update //ウェアハウスリソースを更新する
helm search hub // Artifact Hub から helm チャートを見つけて一覧表示します。 Artifact Hubは多数の異なるリポジトリを保存します
helm search repo //ローカル helm クライアントに追加したリポジトリ (helm repo add を使用) から検索します。このコマンドはローカル データに基づいて検索するため、インターネット接続は必要ありません。

一般的な Helm コマンド (チャートのインストール、アップグレード、ロールバック、アンインストールなど) を次に示します。

<<:  クラウドネイティブのビッグデータ知識マップを1つの記事で学ぶ

>>:  クラウドネイティブ災害復旧製品 HyperBDR の自動テスト実践

推薦する

海外のクラウドファンディングサイトの実務経験:なぜ法的認可を得られるのか

海外のクラウドファンディングプラットフォームのいくつかのルールと、海外のクラウドファンディングが法的...

私の国は重要な情報技術製品とプロバイダーに対するサイバーセキュリティ審査システムを導入します

新浪科技報は5月22日、新華社微博で、わが国が国家の安全と公共の利益に関わるシステムで使用される重要...

仮想化について語るパート 4 - コンピューティング仮想化における CPU 仮想化

ここまでの紹介で、さまざまなリソースに対する仮想化には、主にコンピューティング仮想化、ストレージ仮想...

SEOの今後の方向性について語る

天気はどんどん寒くなり、また冬が来ます。今年の冬は例年に比べて寒い気がしますが、それは天気が寒いから...

ローカルポータルが新たな機会をもたらす

現在、O2Oコンセプトは非常に人気があります。同時に、一部のローカルウェブサイトはこの好機を捉え、こ...

Google の特許により Google ニュースの並べ替えルールが明らかに

Computerworld は最近、Google が昨年ニュースランキングシステムの特許出願を取得し...

企業はクラウドセキュリティの問題を弁証法的に捉える必要がある

セキュリティ問題に関する小さな提案でさえ、クラウド コンピューティング プロジェクトを台無しにし、ク...

「ダブル11」の準備はできていますか?

時間が経つのは早いですね。今日は11月1日、毎年恒例の「ダブル11」がもうすぐやってきます。 「ダブ...

Apple の携帯電話はなぜ高騰しているのでしょうか?

Apple の携帯電話の価格は、中国のあらゆる業界の商人にとってモデルとなっています。なぜでしょうか...

人材ネットワークの垂直分割を通じてお金を稼ぐという夢を実現するチャンスはまだあるのでしょうか?

草の根ウェブマスターの起業分野を活性化できる唯一の分野は、おそらく人材ウェブサイトです。なぜそう言う...

Kubernetesガバナンス戦略を確立する方法

翻訳者 |李睿校正:孫淑娟ガバナンスにより一貫性と再現性がもたらされ、品質が決して損なわれることがな...

ウールとギャング:インターネット クラウドソーシングをファッションに導入

「編み物」といえば、多くの人は次のような光景を思い浮かべるでしょう。庭のロッキングチェアに座り、老眼...

ウェブサイトのキーワードがBaiduの2ページ目に長期間ランクインしている理由

私は毎日オリジナルコンテンツを更新し、毎日友好的なリンクを交換し、毎日外部リンクを投稿し続けました。...

Yixin PRの最初のユーザーがモデルを再交渉するのは時期尚早です

易心はここ2日間で本当に人気を博しています。伝統的な権威あるメディアは易心に注目し、オンラインメディ...