操作シナリオ
前提条件
Tencent Container Registry(TCR)エンタープライズ版でホストされているプライベートイメージを使用してアプリケーションをデプロイする前に、以下の準備作業を完了する必要があります:
既存の TKE クラスターを使用する場合は、操作サブアカウントにクラスター関連の権限があることを確認してください。TKE クラスター権限管理を参照してください。 操作手順
コンテナイメージの準備
ステップ 1:ネームスペースの作成
新規作成された TCR エンタープライズ版インスタンスにはデフォルトのネームスペースが存在せず、イメージをプッシュして自動的に作成することもできません。ネームスペースの作成を参照して、必要に応じて作成してください。
ネームスペース名にはプロジェクト名またはチーム名を使用することを推奨します。本記事では docker を例に説明します。作成に成功すると、下図のようになります: ステップ 2:イメージリポジトリの作成(オプション)
コンテナイメージは特定のイメージリポジトリ内でホストされます。イメージリポジトリの作成を参照して、必要に応じて作成してください。イメージリポジトリ名は、デプロイするコンテナイメージ名に設定してください。本記事では getting-started を例に説明します。作成に成功すると、下図のようになります: 説明:
docker cli やその他のイメージツール(例:jenkins)を使用してイメージをエンタープライズ版インスタンスにプッシュする際、イメージリポジトリが存在しない場合は自動的に作成されるため、事前に手動で作成する必要はありません。
ステップ 3:コンテナイメージのプッシュ
docker cli またはその他のイメージビルドツール(例:jenkins)を使用してイメージを指定のイメージリポジトリにプッシュできます。本記事では docker cli を例に説明します。この手順では、Docker がインストールされたクラウドサーバー(CVM)または物理マシンを使用し、アクセスするクライアントがネットワークアクセスポリシーの設定で定義されたパブリックネットワークまたはプライベートネットワークの許可範囲内にあることを確認する必要があります。 2. ログインに成功すると、ローカルで新しいコンテナイメージをビルドするか、DockerHub からパブリックイメージを取得してテストに使用できます。
本記事では、DockerHub 公式の Nginx 最新イメージを例に、コマンドラインツールで以下のコマンドを順番に実行すると、そのイメージをプッシュできます。demo-tcr、docker、getting-started を、実際に作成したインスタンス名、ネームスペース名、イメージリポジトリ名に順番に置き換えてください。
docker tag getting-started:latest demo-tcr.tencentcloudcr.com/docker/getting-started:latest
docker push demo-tcr.tencentcloudcr.com/docker/getting-started:latest
プッシュが成功したら、コンソールの「イメージリポジトリ」ページに移動し、リポジトリ名を選択して詳細ページで確認できます。 TKE クラスターからの TCR インスタンスへのアクセス設定
TCR エンタープライズ版インスタンスはネットワークアクセス制御をサポートしており、デフォルトではすべての送信元からの外部アクセスを拒否します。TKE クラスターのネットワーク設定に応じて、パブリックネットワークまたはプライベートネットワークを介して指定インスタンスにアクセスし、コンテナイメージをプルできます。TKE クラスターと TCR インスタンスが同じリージョンにデプロイされている場合は、プライベートネットワーク経由でコンテナイメージをプルすることを推奨します。この方法はプル速度を向上させ、パブリックネットワークのトラフィックコストを節約できます。
ステップ 1:TCR インスタンスにクラスター VPC を関連付ける
ユーザーデータセキュリティを保護するため、新規作成された TCR インスタンスはデフォルトですべての送信元からのアクセスを拒否します。指定した TKE クラスターが TCR インスタンスにアクセスしてイメージをプルできるようにするには、クラスターが存在する VPC を TCR インスタンスに関連付け、対応するプライベートネットワーク名前解決を設定する必要があります。
ステップ 2:TKE クラスターへの TCR プラグインのインストール
現在 TKE を使用している場合は、TCR 説明を参照して、TKE クラスターに TCR プラグインをインストールし、「TCR コンポーネントパラメータ設定」ウィンドウで「プライベートネットワーク名前解決機能を有効にする」にチェックを入れてください。このプラグインは、クラスター内のノードに、関連付けられた TCR インスタンスのプライベートネットワーク名前解決を自動的に設定し、プライベートネットワークから認証情報不要でインスタンス内のイメージをプルできるようにします。
プラグインのインストールが完了すると、クラスターは、関連付けられたインスタンス内のイメージをプライベートネットワークから認証情報不要でプルできるようになり、追加の設定は不要です。下図に示すとおりです: 説明:
現在の TCR コンポーネントは、K8s バージョンが 1.12、1.14、1.16、1.18、1.20 のクラスターのみをサポートしています。クラスターのバージョンがサポートされていない場合は、手動設定方式を使用してください。
TCR インスタンス内のコンテナイメージを使用したワークロードの作成
1. TKE コンソールにログインし、左側のナビゲーションバーでクラスターを選択します。 2. ワークロードを作成するクラスター ID を選択し、クラスター詳細ページに移動します。
3. クラスター詳細ページで、左側のワークロード > Deployment を選択します。
4. 「Deployment」ページに移動し、新規作成をクリックします。
5. 「Workload の新規作成」ページに移動し、以下の主要パラメータ情報を参照して、ワークロードを作成します。
ネームスペース:必要に応じて選択します。TCR プラグインのインストール時に、認証情報不要プルをサポートするように設定したネームスペースに、ここで必要なネームスペースが含まれていることを確認してください。
インスタンス内コンテナ:
イメージ:イメージの選択をクリックし、表示された「イメージの選択」ウィンドウで、TCR エンタープライズ版を選択し、必要に応じてリージョン、インスタンス、イメージリポジトリを選択します。下図に示すとおりです:
イメージバージョン:イメージを選択した後、イメージバージョンの選択をクリックし、表示された「イメージバージョンの選択」ウィンドウで、必要に応じてこのイメージリポジトリのいずれかのバージョンを選択します。選択しない場合は、デフォルトで latest になります。
イメージアクセス認証情報:クラスターに TCR 拡張コンポーネントがインストールされている場合は、明示的な設定は不要です。他のアクセス認証情報を選択しないでください。他のアクセス認証情報を選択すると、このワークロードは TCR プラグインの認証情報不要プル設定を読み込めなくなります。
6. 他のパラメータ設定を完了した後、ワークロードの作成をクリックし、このワークロードのデプロイ進捗を確認します。
デプロイが成功した後、「Deployment」ページでこのワークロードの「実行中/期待される Pod 数」が「1/1」であることを確認できます。下図に示すとおりです: