Helm 3 チャートをプッシュおよびプルする前に、チャートを保存および管理するための Open Container Initiative(OCI)イメージリポジトリを作成する必要があります。 OCI イメージリポジトリは、ローカルファイルシステム、ネットワークサーバー、またはクラウドストレージデバイスにすることができます。 V3.7 より前のバージョンの Helm を使用したチャートのプッシュおよびプルの操作は、Helm cm-push プラグインを使用したチャートのプッシュおよびプルの操作とは異なります。 このトピックでは、V3.7 より前のバージョンの Helm を使用してチャートをプッシュおよびプルする方法について説明します。
ステップ 1:Container Registry Enterprise Edition インスタンスを構成する
名前空間を作成します。
Container Registry コンソール にログインします。
左側のナビゲーションウィンドウで、[インスタンス] をクリックします。
[インスタンス] ページで、管理する Enterprise Edition インスタンスをクリックします。
Container Registry Enterprise Edition インスタンスの管理ページの左側のナビゲーションウィンドウで、 を選択します。
[名前空間] ページで、[名前空間の作成] をクリックします。
[名前空間の作成] ダイアログボックスで、[名前空間]、[リポジトリの自動作成]、および [自動作成されたリポジトリのデフォルト設定] を構成し、[確認] をクリックします。
イメージリポジトリを作成します。
Enterprise Edition インスタンスの管理ページの左側のナビゲーションウィンドウで、 を選択します。
[リポジトリ] ページで、[リポジトリの作成] をクリックします。
[リポジトリ情報] ステップで、[名前空間]、[リポジトリ名]、[リポジトリタイプ]、[タグ]、[高速化されたイメージ]、[概要]、および [説明] パラメーターを構成します。 次に、[次へ] をクリックします。
[コードソース] ステップで、[コードソース]、[ビルド設定]、および [ビルドルール] パラメーターを構成し、[リポジトリの作成] をクリックします。 次の表は、主要なパラメーターについて説明しています。
パラメーター
説明
コードソース
コードソース。
ビルド設定
コード変更時にイメージを自動的にビルドする:ブランチからコードがコミットされると、ビルドルールが自動的にトリガーされます。
中国本土以外にデプロイされたサーバーでビルドする:イメージは中国本土以外のサーバーでビルドされ、指定されたリージョンのリポジトリにプッシュされます。 プロジェクトで使用されている Dockerfile を中国本土以外のサイトからダウンロードする必要があるが、国境を越えたネットワーク接続が不安定な場合は、[中国本土以外にデプロイされたサーバーでビルドする] を有効にすることができます。
キャッシュなしでビルドする:イメージがビルドされるたびに、システムはソースコードリポジトリからベースイメージをプルします。 これにより、ビルド期間が長くなる可能性があります。 イメージのビルドを高速化するために、[キャッシュなしでビルドする] を無効にすることができます。
[リポジトリ] ページで、作成されたイメージリポジトリをクリックします。 リポジトリ管理ページの左側のナビゲーションウィンドウに [ビルド] が表示されている場合、イメージリポジトリはソースコードリポジトリにバインドされています。
アクセス認証情報を構成します。
イメージリポジトリのアクセス認証情報として、パスワードまたはトークンを構成できます。 この例では、パスワードがアクセス認証情報として構成されています。
Enterprise Edition インスタンスの管理ページの左側のナビゲーションウィンドウで、 を選択します。
[アクセス認証情報] ページで、[パスワードの設定] をクリックします。
[パスワードの設定] ダイアログボックスで、[パスワード] および [パスワードの確認] パラメーターを設定します。 [確認] をクリックします。
アクセス制御リスト(ACL)を構成します。
インターネットアクセスを有効にするか、Virtual Private Cloud(VPC)を追加して VPC アクセスを有効にします。 これにより、チャートをイメージリポジトリにプッシュできます。 この例では、インターネットアクセスが有効になっています。 VPC アクセスを有効にする方法については、「VPC ACL を構成する」をご参照ください。
Enterprise Edition インスタンスの管理ページの左側のナビゲーションウィンドウで、 を選択します。
[アクセス制御] ページで、[インターネット] タブをクリックします。
[インターネット] タブで、[インターネット経由のアクセスを有効にする] をオンにし、[インターネットホワイトリストの追加] をクリックします。
[インターネットホワイトリストの追加] ダイアログボックスで、イメージリポジトリにアクセスできる CIDR ブロックと説明を指定し、[確認] をクリックします。
(オプション)[匿名ユーザーからのプル] をオンにします。
[匿名ユーザーからのプル] をオンにすると、匿名ユーザーとしてパブリックイメージリポジトリからチャートをプルできます。
Container Registry コンソール にログインします。
上部のナビゲーションバーで、リージョンを選択します。
左側のナビゲーションウィンドウで、[インスタンス] をクリックします。
[インスタンス] ページで、管理する Enterprise Edition インスタンスをクリックします。
[概要] ページの右側にある [インスタンス設定] セクションで、[匿名ユーザーからのプル] をオンにします。
[ヒント] ダイアログボックスで、[確認] をクリックします。
ステップ 2:チャートをプッシュおよびプルする
公式 Web サイトから必要なバージョンの Helm をダウンロードします。
説明クライアントのバージョンが V3 であることを確認してください。
helm3 version -cコマンドを実行してバージョンを確認できます。 この例では、クライアントのバージョンは V3.0.2 です。次のコマンドを実行して、Helm 3 の実験的機能を有効にします。
export HELM_EXPERIMENTAL_OCI=1次のコマンドを実行して、Enterprise Edition インスタンスにログインします。
コマンド内のユーザー名を Alibaba Cloud アカウントに置き換えます。
説明パブリックチャートリポジトリからチャートをプッシュおよびプルする場合は、Container Registry コンソールの Container Registry Enterprise Edition インスタンスの [概要] ページで [匿名ユーザーからのプル] をオンにすることができます。 これにより、匿名ユーザーとしてイメージリポジトリからチャートをプルできます。
helm3 registry login --username=<Registry logon name> <Name of the Enterprise Edition instance>.<Region in which the Enterprise Edition instance resides>.cr.aliyuncs.com例:
helm3 registry login --username=123@188077086902**** m**-registry.cn-hangzhou.cr.aliyuncs.comコマンド出力で、ログインパスワードを入力します。 ログインパスワードは、ステップ 1 で設定したパスワードです。
次のコマンドを実行して、HelloWorld チャートを作成します。
helm3 create helloworldチャートをプッシュおよびプルします。
チャートをイメージリポジトリにプッシュします。
次のコマンドを実行して、チャートディレクトリを Enterprise Edition インスタンスのイメージリポジトリのタグとして保存します。
helm3 chart save helloworld <Name of the Enterprise Edition instance>.<Region in which the Enterprise Edition instance resides>.cr.aliyuncs.com/<Namespace name>/<Name of the image repository>:<Image tag>例:
helm3 chart save helloworld m**-registry.cn-hangzhou.cr.aliyuncs.com/m**/test:latest次のコマンドを実行して、タグを Enterprise Edition インスタンスのイメージリポジトリにプッシュします。
helm3 chart push <Name of the Enterprise Edition instance>.<Region in which the Enterprise Edition instance resides>.cr.aliyuncs.com/<Namespace name>/<Name of the image repository>:<Image tag>例:
helm3 chart push m**-registry.cn-hangzhou.cr.aliyuncs.com/m**/test:latest
イメージリポジトリからチャートをプルします。
次のコマンドを実行して、Enterprise Edition インスタンスのイメージリポジトリから指定されたタグをプルします。
helm3 chart save helloworld <Name of the Enterprise Edition instance>.<Region in which the Enterprise Edition instance resides>.cr.aliyuncs.com/<Namespace name>/<Name of the image repository>:<Image tag>例:
helm3 chart save helloworld m**-registry.cn-hangzhou.cr.aliyuncs.com/m**/test:latest次のコマンドを実行して、チャートタグをローカルディレクトリにエクスポートします。 その後、ローカルチャートディレクトリを表示できます。
helm3 chart export <Name of the Enterprise Edition instance>.<Region in which the Enterprise Edition instance resides>.cr.aliyuncs.com/<Namespace name>/<Name of the image repository>:<Image tag> -d .例:
helm3 chart export m**-registry.cn-hangzhou.cr.aliyuncs.com/m**/test:latest -d .次のコマンドを実行して、HelloWorld チャートをインストールします。
helm install helloworld ./helloworld