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

推薦する

WeChat でクリエイティブな広告プロモーションを行うためのヒント。うまく活用して売上を 3 倍にしましょう。ケース分析

「北斗七星が南東を指し、夏の始まりです。」すべてのものがピーク成長期に入り、人々の消費意欲は徐々に熱...

セカンドディメンション、テンセントのゲーム帝国に亀裂

6月17日、テンセントのゲームスタジオが2年かけて開発した『白夜オーロラ』が海外の約150のiOS市...

fliphost-256M メモリ/5gSSD/G ポート/年間 24 ドル/6 時間ごとにデータ バックアップ、ワンクリックで復元

Fliphost.net は優れた VPS 業者です。顧客ベースは buyvm よりはるかに少ないで...

ブランドマーケティングのための3つの革新的な公式

2年前、私は「3年間でマーケティングの古典書籍を200冊読む」という目標を立てました。この目標はまだ...

クラウド コンピューティングに隠された 10 の秘密

[[410358]]今日のビジネス テクノロジーにおいてクラウドが何を意味するのかを正確に定義できる...

人民日報オンラインのインスタント検索とチケット取得ツールが白熱した議論を巻き起こした

新華社通信のチケット取得プラグインが依然として混乱している中、人民日報オンラインのインスタント検索も...

ウェブサイトの直帰率を下げる10の方法

インターネットが拡大し続けるにつれ、特定の情報を検索すると、ますます多くの Web サイトが非常に類...

検索エンジン最適化: B2 および 2.0

自分や自分の会社、あるいは工場の環境の紹介を撮影し、その動画を Youtube.com にアップロー...

frontrangehosting プロモーション/openvz 60% オフ/kvm 70% オフ

frontrangehosting は比較的新しい VPS プロバイダーで、無料 IP 範囲は AS...

内モンゴルモバイルは3G基盤を構築し、クラウドコンピューティングを着実に推進

3G 時代の通信事業者の要件を満たすクラウド コンピューティング アーキテクチャを構築するにはどうす...

Google アナリティクスで顧客からの電話を追跡および分析する方法

9月の深センウェブサイト分析共有イベントで、友人が顧客コールトラッキングの内容について質問しました。...

ショッピング ウェブサイトの合理的なショッピング プロセスを設計する方法 - Google 検索エンジン最適化、SEO チュートリアル、SEO 知識

1. 操作手順のガイダンスを提供する支払いは通常、複数のステップからなるプロセスであり、ユーザーは支...

ハイパーリンクのないURLが最適化に効果的かどうかを2つの側面から分析する

ハイパーリンクのないURLが最適化に効果的かどうかを2つの側面から分析するSEO担当者は、説明的なテ...

企業向けウェブサイト構築のメリットと機能は何ですか?

月給5,000~50,000のこれらのプロジェクトはあなたの将来ですウェブサイトは、企業がインターネ...