Helm cm-push プラグイン (helm-acr プラグインとも呼ばれます) を使用すると、Container Registry のチャートリポジトリに対して Helm チャートをプッシュおよびプルできます。Helm チャートは、関連する Kubernetes リソースのセットを記述するファイルのコレクションです。
HTTP 経由でチャートをプッシュおよびプルするには、するか、チケットを送信して、チャートリポジトリのローカル IP アドレスをホワイトリストに追加してください。
前提条件
開始する前に、以下を準備してください。
ACR Enterprise Edition インスタンス
yumが利用可能な Linux マシン (Git のインストール用)Helm 3.7 以降。バージョンを確認するには、
helm version -cを実行します。
ステップ 1: Enterprise Edition インスタンスの設定
名前空間の作成
Container Registry コンソールにログインします。
左側のナビゲーションウィンドウで、[インスタンス] をクリックします。
「[インスタンス]」ページで、管理する Enterprise Edition インスタンスをクリックします。
左側のナビゲーションウィンドウで、[Helm チャート] > [名前空間] を選択します。
[名前空間] ページで、[名前空間の作成] をクリックします。
「[名前空間の作成]」ダイアログボックスで、[名前空間]、リポジトリを自動的に作成、および[自動作成されたリポジトリのデフォルト設定]を設定し、「[確認]」をクリックします。
チャートリポジトリの作成
名前空間に対して [リポジトリを自動的に作成] を有効にすると、Helm は最初のプッシュ時にチャート リポジトリを自動的に作成します。最初にコンソールで作成する必要はありません。
チャートリポジトリの URL 形式:
| アクセスタイプ | URL 形式 |
|---|---|
| インターネット | <Instance name>-chart.<Region ID>.cr.aliyuncs.com/<Namespace>/<Chart repository name> |
| Virtual Private Cloud (VPC) | <Instance name>-chart-vpc.<Region ID>.cr.aliyuncs.com/<Namespace>/<Chart repository name> |
チャートバージョンの形式: <Chart name>-<Version number>
Enterprise Edition インスタンスの [概要] ページで、[コンポーネント設定項目] セクションにある [チャート] をオンにします。
左側のナビゲーションウィンドウで、[Helm Chart] > [Repositories] を選択します。
[リポジトリ] ページで、[リポジトリの作成] をクリックします。
「[Helm チャートの作成]」ダイアログボックスで、「[名前空間]」、「[リポジトリ名]」、および「[タイプ]」を設定し、その後「[確認]」をクリックします。
アクセス認証情報の設定
Helm 操作を認証するために、パスワードまたは一時トークンを設定します。この例ではパスワードを使用します。
左側のナビゲーションウィンドウで、[インスタンス] > [アクセス資格情報] を選択します。
[アクセス資格情報] ページで、[パスワードの設定] をクリックします。
[パスワードの設定] ダイアログボックスで、[パスワード] と [パスワードの確認] を設定し、[確認] をクリックします。
アクセス制御の設定
Helm がチャートリポジトリにアクセスできるように、インターネットアクセスまたは VPC アクセスを有効にします。この例ではインターネットアクセスを有効にします。VPC アクセスの詳細については、「VPC ACL の設定」をご参照ください。
左側のナビゲーションウィンドウで、[アクセスコントロール] をクリックします。
[アクセスコントロール] ページで、[インターネット] タブをクリックします。
[インターネット経由のアクセスを有効化] をオンにし、次に [インターネットホワイトリストの追加] をクリックします。
[インターネットホワイトリストの追加] ダイアログボックスで、許可する CIDR ブロックとメモを指定し、[確認] をクリックします。
(オプション) 匿名プルを有効にする
「[匿名ユーザーからのプル]」を有効にすると、誰でもログインせずにパブリックチャートリポジトリからチャートをプルできます。
Container Registry コンソールにログインします。
上部のナビゲーションバーで、リージョンを選択します。
左側のナビゲーションウィンドウで、[インスタンス] をクリックします。
「[インスタンス]」ページで、管理する Enterprise Edition インスタンスをクリックします。
「概要」ページの「インスタンス設定」セクションで、「匿名ユーザーからのプル」を有効にします。
[ヒント] ダイアログボックスで、[OK] をクリックします。
ステップ 2: Helm クライアントと cm-push プラグインのインストール
サポートされている Helm バージョン: Helm 3.7 以降。この例では Helm 3.10.0 を使用します。
Helm をダウンロードします。
パッケージを解凍し、バイナリを PATH に移動します。
tar -zxvf helm-v3.10.0-rc.1-linux-amd64.tar.gz mv linux-amd64/helm /usr/local/bin/helmプラグインインストーラーで必要となる Git をインストールします。
yum install githelm-acr プラグインをインストールします。
helm plugin install https://github.com/AliyunContainerService/helm-acr
ステップ 3: チャートのプッシュ
チャートリポジトリをローカルリポジトリエイリアスとして登録します。
helm repo add <repo-alias> https://<instance-name>-chart.<region-id>.cr.aliyuncs.com/<namespace>/<chart-repo-name> --username <username> --password <password>プレースホルダー 説明 例 <repo-alias>このマシン上のリポジトリのローカル名 my-charts<instance-name>ご利用の ACR Enterprise Edition インスタンス名 test9-7<region-id>インスタンスがデプロイされているリージョン ID cn-hangzhou<namespace>ステップ 1 で作成した名前空間 ns1<chart-repo-name>チャートリポジトリ名 repo1<username>ご利用の Alibaba Cloud アカウントのユーザー名 — <password>アクセス認証情報で設定したパスワード — チャートを作成してプッシュします。
# Create a chart scaffold helm create <chart-name> # Push the chart directory to the registered repo helm cm-push <chart-name> <repo-alias>プッシュを検証するには、Container Registry コンソールに移動します。Enterprise Edition インスタンスの左側のナビゲーションウィンドウで、[Helm チャート] > [リポジトリ] を選択します。チャートリポジトリ名をクリックし、次に [バージョン] をクリックすると、新しくプッシュされたチャートが表示されます。
ステップ 4: チャートのプルとインストール
リポジトリからローカルチャートインデックスを更新します。
helm repo update特定のチャートバージョンをプルします。
helm fetch <repo-alias>/<chart-name> --version <chart-version>プレースホルダー 説明 例 <repo-alias>登録したローカルリポジトリエイリアス my-charts<chart-name>チャート名 my-app<chart-version>プルするチャートバージョン 0.1.0リポジトリから直接チャートをインストールします。
helm install -f values.yaml <repo-alias>/<chart-name> --version <chart-version>
次のステップ
チャートリポジトリへの VPC ベースのアクセスを有効にするには、「VPC ACL の設定」をご参照ください。