操作シナリオ
Tencent Container Registry(TCR)は Helm Chart のホスティングをサポートしており、ユーザーのクラウドネイティブアプリケーションのホスティングおよび配信ニーズに対応します。ユーザーは同じネームスペース内でコンテナイメージと Helm Chart を同時に管理でき、業務プロジェクト内でコンテナイメージと Helm Chart というクラウドネイティブ成果物を同時に利用できます。
現在、Helm Chart のホスティングをサポートしているのはエンタープライズ版インスタンスのみで、コンソールまたは Helm クライアントを使用して Chart のアップロードとダウンロードを実行できます。Helm Chart リポジトリは、所属するネームスペースのパブリックおよびプライベート属性を継承するため、追加設定は不要です。権限管理では、Helm Chart とコンテナイメージは repository リソースタイプを共有します。つまり、qcs::tcr:$region:$account:repository/tcr-xxxxxx/project-a/* というリソース記述には、ネームスペース project-a 内のすべてのイメージリポジトリと Helm Chart が含まれ、ユーザーはリソース権限管理を行う際に柔軟に活用できます。
前提条件
TCR エンタープライズ版インスタンス内の Helm Chart をアップロードして管理する前に、以下の準備作業を完了する必要があります:
操作手順
コンソールを使用した Helm Chart の管理
1. TCR コンソールにログインし、左側のナビゲーションバーで Helm Chart を選択します。 2. 「Helm Chart」ページで現在のインスタンス内の Helm Chart 一覧を確認できます。インスタンスを切り替える場合は、ページ上部の「インスタンス名」ドロップダウンリストから選択してください。下図に示すとおりです: Chart リストには以下の情報と操作が含まれます:
名称:Helm Chart の名称です。クリックすると Chart 詳細ページに移動し、Chart の各バージョンを確認および管理できます。また、基本情報タブで各バージョンの Chart パッケージ内のファイル詳細を確認できます。
ネームスペース:Helm Chart が属するネームスペースです。
作成時間:Helm が最初にリポジトリへプッシュされた日時です。
3. 指定した Helm Chart リポジトリ名をクリックすると、そのリポジトリの詳細ページに移動します。
バージョン管理:このページでは現在のリポジトリ内の既存の Chart バージョンを表示します。指定したバージョンをダウンロードまたは削除できます。下図に示すとおりです: 基本情報:このページでは、指定した Chart バージョン内の詳細情報(Chart.yaml など)を確認できます。下図に示すとおりです: コンソールを使用した Helm Chart のアップロードおよびダウンロード
ローカル Helm Chart パッケージのアップロード
1. TCR コンソールにログインし、左側のナビゲーションバーで Helm Chart を選択します。
「Helm Chart」ページで現在のインスタンス内の Helm Chart リポジトリ一覧を確認できます。インスタンスを切り替える場合は、ページ上部の「インスタンス名」ドロップダウンリストから選択してください。 2. アップロードをクリックし、「Helm Chart のアップロード」ウィンドウで以下の指示に従って設定します。下図に示すとおりです:
所属インスタンス:現在選択中のインスタンスです。
ネームスペース:Helm Chart が属するネームスペースです。リストが空の場合は、まずこのインスタンス内でネームスペースを作成してください。 Chart パッケージ:クリックしてローカルにダウンロード済みの Helm Chart パッケージを選択します。
注意:
.tgz 形式の Helm Chart 圧縮パッケージのみをサポートしています。他の種類のファイルはアップロードしないでください。同名ファイルをアップロードすると既存の Chart が上書きされますので、慎重に操作してください。
3. アップロードをクリックすると、その Helm Chart パッケージのアップロードを開始できます。アップロードが完了したら、リポジトリリストページでアップロード済みの Helm Chart を確認できます。アップロードした Helm Chart パッケージに対応する Helm Chart リポジトリがない場合は、Chart リポジトリが自動的に新規作成されます。
Helm Chart パッケージのローカルへのダウンロード
1. Helm Chart ページで現在のインスタンス内の Helm Chart リポジトリ一覧を確認します。指定したリポジトリをクリックすると、その Helm リポジトリのバージョン管理ページに移動します。
2. その Chart リポジトリ内の指定バージョンを選択し、そのバージョンが含まれる行の右側にあるダウンロードをクリックすると、そのバージョンの Chart パッケージが自動的にローカルへダウンロードされます。ブラウザや設定に応じて、ダウンロード先のパスを指定できます。
Helm クライアントを使用した Helm Chart のアップロードおよびダウンロード
Helm クライアントのインストール
説明:
現在 Tencent Kubernetes Engine(TKE)で Helm を使用する場合は、Helm v3.x.x バージョンを選択してください。helm version -c コマンドを実行すると、インストール済みのクライアントバージョンを確認できます。
本記事では、Linux オペレーティングシステムのノードへのインストールを例として説明します。他のプラットフォームにインストールする場合は、対応するインストールパッケージをダウンロードしてください。
以下のコマンドを順番に実行して、Helm クライアントをダウンロードしてインストールします。Helm のインストールの詳細については、Helm のインストールを参照してください。 curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3
Helm リポジトリの追加
1. TCR コンソールにログインし、「インスタンスリスト」ページでインスタンス名を選択して、インスタンス詳細ページに移動します。 3. ノード上で以下のコマンドを実行し、Helm Chart のホスティングに使用するネームスペースをローカル Helm リポジトリに追加します。
helm repo add $instance-$namespace https://$instance.tencentcloudcr.com/chartrepo/$namespace --username $username --password $instance-token
$instance-$namespace:helm リポジトリの名称です。各インスタンスとネームスペースを区別しやすくするため、インスタンス名+ネームスペース名の組み合わせで命名することを推奨します。
https://$instance.tencentcloudcr.com/chartrepo/$namespace:helm リポジトリのリモートアドレスです。
$username:手順 2 で取得済みのユーザー名です。$instance-token:手順 2 で取得済みのログインパスワードです。
追加に成功すると、以下の情報が表示されます。"$instance-$namespace" has been added to your repositories
Helm Chart のプッシュ
1. Helm Push プラグインをインストールします。
注意:
v0.10.0 以降のバージョンの helm-push プラグインをインストールしてください。バージョンの非互換性などの問題により Helm Chart を正常にプッシュできなくなることを避けるためです。 v0.10.0 より前のバージョンを使用している場合は、helm cm-push を helm push コマンドに置き換える必要があります。 Helm CLI を使用して Chart パッケージをアップロードするには、helm-push プラグインのインストールが必要です。このプラグインは、helm push コマンドを使用して Helm Chart を指定のリポジトリにプッシュすること、およびディレクトリと圧縮ファイルのアップロードをサポートします。
helm plugin install https://github.com/chartmuseum/helm-push
2. ノード上で以下のコマンドを実行し、Chart を作成します。
helm create tcr-chart-demo
3. 以下のコマンドを実行すると、指定したディレクトリを Chart リポジトリに直接プッシュできます(オプション)。
helm cm-push tcr-chart-demo $instance-$namespace
ここで、$instance-$namespace は追加済みのローカルリポジトリ名です。
4. 以下のコマンドを実行すると、指定したディレクトリを圧縮し、Chart リポジトリにプッシュできます。
tar zcvf tcr-chart-demo-1.0.0.tgz tcr-chart-demo/
helm cm-push tcr-chart-demo-1.0.0.tgz $instance-$namespace
ここで、$instance-$namespace は追加済みのローカルリポジトリ名です。
Helm Chart のプル
1. ノード上で以下のコマンドを実行し、最新の Chart 情報を取得します。
2. 以下のコマンドを実行し、指定バージョンの Helm Chart をプルします。
helm fetch <ローカルリポジトリ名>/<Chart 名> --version <Chart バージョン>
エンタープライズ版インスタンス tcr-demo からネームスペース project-a 内の tcr-chart-demo バージョン 1.0.0 をプルする場合を例にします:
helm fetch tcr-demo-project-a/tcr-chart-demo --version 1.0.0