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年10月3日月曜日10:15:13 alpineに置き換えられました- 0.1 .0 1.0初期インストール 2016年10月3日月曜日10:15:13 alpine - 0.1 .0 1.0に置き換えられました正常にアップグレードされました 2016年10月3日月曜日10:15:13 alpineに置き換えられました- 0.1 .0 1.0 2にロールバックされました 2016年10月3日月曜日10:15:13にalpine - 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 コマンド (チャートのインストール、アップグレード、ロールバック、アンインストールなど) を次に示します。 |