[クラウド ネイティブ] 一般的な 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 の自動テスト実践

推薦する

OnraHost - $5.5/Xen/1G メモリ/3CPU/50gSSD/2T トラフィック/ロサンゼルス/QuadNet

OnraHost.com は実際に以前にも安価な VPS をリリースしたことがありますが、いつも中途...

簡潔な分析: 二級都市と三級都市のオンラインメディアが直面する共通のジレンマ

3G や 4G に不満を言い続ける時代に生きている人たちは、ダイヤルアップ インターネット アクセス...

話題のインターネット クレジットに神経を逆なでされているのは誰でしょうか?

オンラインクレジットの発展は、ほとんどの人が予想した通りであり、市場の熱狂を経験した後、業界の再編が...

クラウド ネイティブはあなたのビジネスにとって何を意味しますか?

クラウド ネイティブのアーキテクチャと原則により、常に変化する市場で競争力を維持するために必要な俊敏...

この記事を読めば、分散ロックのさまざまな実装を理解できるようになります。

序文今日は分散ロックについてお話します。インターネット上には関連コンテンツが多数存在しますが、それら...

#おすすめ# hostdare: 長らく販売されていなかった cn2 gt シリーズ VPS が再入荷しました

Hostdare は、以前販売中止になっていた Asia Optimized VPS シリーズを本日...

SEOとネットワークマーケティングの関係についての簡単な説明

現在、国内の状況はトレンドに追随しています。最近、SEOの台頭により、多くのSEOトレーニング機関が...

Google Inをチェック

インハウス SEO とは何ですか? 企業が自社内で SEO 作業を行うことを意味し、これをインハウス...

[更新] 信頼性が高く、コストパフォーマンスに優れた韓国のクラウドサーバーベンダーの推奨事項

米国、香港、日本などと比較すると、韓国のクラウドサーバーは市場で比較的希少または弱いです。実は韓国の...

ソフトウェアダウンロードサイトのいくつかの収益モデルについて話す

みなさんこんにちは。2006 年と 2007 年に、<年収 2 万元で Web マスターの仲間...

Digitalocean シンガポールデータセンター VPS が利用可能になりました

digitalocean はついにシンガポールのデータセンターに VPS を導入しました。ご興味があ...

cmivps: 香港サーバー、無制限のトラフィック、超高構成、複数の IPv4、月額 169 ドルから、CN2+PCCW 回線

cmivps は香港データセンターに独立したサーバーを追加しました。これらの香港サーバーは、2*e5...

ブランドマーケティングのための10のキーワード

これまでにもこれらのキーワードのいくつかについてお話ししてきましたが、統一した形でお話ししたことはあ...

Baiduライブラリ外部リンク愛してると言うのは簡単じゃない

Baidu の最適化を行う国内 SEO 担当者の間では、Baidu は常に自社の製品をより大切に扱う...

中国の小売電子商取引の旅 - あらゆる段階でため息

[各号に一文]: 多くの場合、速いことは遅いことであり、遅いことは速いことです。 ——アナリシス・イ...