Helm cm-push プラグインを使用すると、chart をプッシュおよびプルできます。 Helm は、chart と呼ばれるパッケージ形式を使用します。 chart は、関連する Kubernetes リソースのセットを記述するファイルのコレクションです。 Helm cm-push プラグインを使用して chart をリモートの chart リポジトリにプッシュする前に、helm plugin install コマンドを実行して、オンプレミスデバイスに Helm cm-push プラグインをインストールする必要があります。 その後、helm push コマンドを実行して chart をプッシュできます。
Helm cm-push プラグインを使用して HTTP 経由で chart をプッシュおよびプルする場合、チケットを送信するを実行して、chart リポジトリのローカル IP アドレスをホワイトリストに追加する必要があります。
ステップ 1:Enterprise Edition インスタンスを構成する
名前空間を作成します。
Container Registry コンソールにログオンします。
左側のナビゲーションウィンドウで、[インスタンス] をクリックします。
[インスタンス] ページで、管理する Enterprise Edition インスタンスをクリックします。
Enterprise Edition インスタンスの管理ページの左側のナビゲーションウィンドウで、 を選択します。
[名前空間] ページで、[名前空間の作成] をクリックします。
[名前空間の作成] ダイアログボックスで、[名前空間]、[リポジトリの自動作成]、および [自動作成リポジトリのデフォルト設定] を構成し、[確認] をクリックします。
chart リポジトリを作成します。
説明名前空間で [リポジトリの自動作成] が有効になっている場合、Container Registry コンソールで事前に chart リポジトリを作成しなくても、Helm を使用して chart を chart リポジトリにプッシュできます。
Enterprise Edition インスタンスの chart リポジトリは、
<Instance name>-chart.<Region ID>.cr.aliyuncs.com/<Namespace>/<Chart repository name>の形式です。 chart リポジトリのバージョンは、<Chart name>-<Version number>です。 VPC 経由で chart リポジトリにアクセスする場合、chart リポジトリは<Instance name>-chart-vpc.<Region ID>.cr.aliyuncs.com/<Namespace>/<Chart repository name>の形式である必要があります。Enterprise Edition インスタンスの [概要] ページで、[コンポーネント設定] セクションで [チャート] をオンにします。
Enterprise Edition インスタンスの管理ページの左側のナビゲーションウィンドウで、 を選択します。
[リポジトリ] ページで、[リポジトリの作成] をクリックします。
[Helm Chart の作成] ダイアログボックスで、[名前空間]、[リポジトリ名]、および [タイプ] パラメーターを構成し、[確認] をクリックします。
アクセス認証情報を構成します。
Helm chart へのアクセスに使用するパスワードまたは一時トークンを設定します。 この例では、パスワードがアクセス認証情報として構成されています。
Enterprise Edition インスタンスの管理ページの左側のナビゲーションウィンドウで、 を選択します。
[アクセス認証情報] ページで、[パスワードの設定] をクリックします。
[パスワードの設定] ダイアログボックスで、[パスワード] および [パスワードの確認] パラメーターを構成します。[確認] をクリックします。
アクセス制御ポリシーを構成します。
Helm chart をリポジトリにプッシュできるように、インターネットアクセスまたは VPC アクセスを有効にします。 この例では、インターネットアクセスが有効になっています。 VPC アクセスを有効にする方法については、「VPC のネットワークアクセス制御を構成する」をご参照ください。
Enterprise Edition インスタンスの管理ページの左側のナビゲーションウィンドウで、[アクセス制御] を選択します。
[アクセス制御] ページで、[インターネット] タブをクリックします。
[インターネット] タブで、[インターネット経由のアクセスを有効にする] をオンにし、[インターネットホワイトリストの追加] をクリックします。
[インターネットホワイトリストの追加] ダイアログボックスで、Enterprise Edition インスタンスにアクセスできる CIDR ブロックとメモを指定し、[確認] をクリックします。
(オプション) [匿名ユーザーからのプル] をオンにします。
[匿名ユーザーからのプル] をオンにすると、ログオンせずにパブリック chart リポジトリに匿名でアクセスできます。
Container Registry コンソールにログオンします。
上部のナビゲーションバーで、リージョンを選択します。
左側のナビゲーションウィンドウで、[インスタンス] をクリックします。
[インスタンス] ページで、管理する Enterprise Edition インスタンスをクリックします。
Enterprise Edition インスタンスの [概要] ページの右側にある [インスタンス設定] セクションで、[匿名ユーザーからのプル] をオンにします。
[ヒント] ダイアログボックスで、[OK] をクリックします。
ステップ 2:Helm クライアントをインストールおよび構成する
Helm をダウンロードします。
説明Helm 3.7 以降のクライアントを使用して、chart をプッシュおよびプルできます。
helm version -cコマンドを実行して、helm クライアントのバージョンを表示できます。 この例では、Helm 3.10.0 をダウンロードして chart をプッシュおよびプルします。次のコマンドを実行して、Helm インストールパッケージを解凍し、指定したディレクトリに配置します。
# インストールパッケージを解凍します。 tar -zxvf helm-v3.10.0-rc.1-linux-amd64.tar.gz # 抽出したファイルを指定したディレクトリに移動します。 mv linux-amd64/helm /usr/local/bin/helmhelm-acr プラグインの
helm cm-pushコマンドを使用して、chart ディレクトリを ACR リポジトリにプッシュします。 次のコマンドを実行して、helm-acr プラグインをインストールできます。説明Helm cm-push プラグインをインストールする前に、
yum install gitコマンドを実行して Git をインストールします。helm plugin install https://github.com/AliyunContainerService/helm-acr
ステップ 3:chart をプッシュおよびプルする
次のコマンドを実行して、オンプレミスリポジトリの名前を指定し、リポジトリ名を Container Registry の名前空間の chart リポジトリにマップします。
helm repo add <Name of the on-premises repository> https://test9-7-chart****.cn-hangzhou.cr.aliyuncs.com/ns1/repo1 --username <username> --password <password>次のコマンドを実行して、chart をプッシュします。
# オンプレミス chart を作成します。 helm create <Chart name> # chart ディレクトリをプッシュします。 helm cm-push <Chart name> <Name of the on-premises repository>Container Registry Enterprise Edition インスタンスの左側のナビゲーションウィンドウで、[Helm Chart] > [リポジトリ] を選択します。 [リポジトリ] ページで、表示する chart リポジトリの名前をクリックし、[バージョン] をクリックします。 [バージョン] ページで、プッシュした新しい chart を表示できます。
次のコマンドを実行して、chart をインストールおよびプルします。
# Container Registry の chart リポジトリからオンプレミス chart インデックスを更新します。 helm repo update # chart をプルします。 helm fetch <Name of the on-premises repository>/<Chart name> --version <Chart version> # chart を直接インストールします。 helm install -f values.yaml <Name of the on-premises repository>/<Chart name> --version <Chart version>