操作ケース
Tencent Container Registry(TCR)エンタープライズエデションは、厳格なデータセキュリティとコンプライアンスの要件、複数のリージョンに分散しているサービス、および大規模なクラスターを備えたエンタープライズクラスのコンテナの顧客に、エンタープライズクラスの専用イメージセキュリティホスティングサービスを提供します。パーソナルエデションと比較して、エンタープライズエデションは、コンテナイメージセキュリティスキャン、クロスリージョン自動同期、Helm Chartホスティング、ネットワークアクセスコントロールなどの特性をサポートしています。詳細については、Tencent Container Registryをご参照ください。 このドキュメントでは、TCRでホスティングされているプライベートイメージを使用して、Tencent Kubernetes Engine(TKE)でアプリケーションをデプロイする方法について説明します。
前提条件
TCRでホスティングされているプライベートイメージを使用してアプリケーションをデプロイする前に、次の準備を完了する必要があります:
操作手順
コンテナイメージの準備
ネームスペースの作成
新規作成されたTCRエンタープライズエデションインスタンスにはデフォルトのネームスペースがなく、イメージをプッシュして自動的に作成できません。必要に応じて作成を完了するには、ネームスペースの作成をご参照ください。
ネームスペース名はプロジェクト名またはチーム名を使用することをお勧めします。このドキュメントでは、例としてdockerを使用します。通常に作成されると、下図の通りになります:
イメージウエアハウスの作成(オプション)
コンテナイメージは特定のイメージウエアハウスでホスティングされます。必用に応じて作成を完了するには、イメージウエアハウスの作成をご参照してください。イメージウエアハウス名は、デプロイされるコンテナイメージの名前に設定されます。このドキュメントでは、例としてgetting-startedを使用します。通常に作成されると、下図の通りになります: 説明:
docker cliまたは他のイメージツール(例えば、jenkins)を使用して、イメージをエンタープライズエデションインスタンスにプッシュするとき、イメージウエアハウスが存在しない場合は、手動で事前に作成する必要がなく、自動的に作成されます。
コンテナイメージのプッシュ
docker cliまたは他のイメージ作成ツール(例えば、jenkins)を使用して、イメージを指定されたイメージウエアハウスにプッシュできます。このドキュメントでは、例としてdocker cliを使用します。この手順では、DockerがインストールされたCloud Virtual Machine(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
通常にプッシュすると、コンソールの「イメージウエアハウス」ページへ進んで、ウェアハウス名を選択して、詳細ページで確認できます。 TCRインスタンスへのTKEクラスターのアクセスの構成
TCRエンタープライズエデションインスタンスはネットワークアクセスコントロールをサポートします。デフォルトでは、すべてのソースからの外部アクセスを拒否します。TKEクラスターのネットワーク構成に応じて、パブリックネットワークまたはプライベートネットワークを介して指定されたインスタンスにアクセスし、コンテナイメージをプルすることを選択できます。TKEクラスターとTCRインスタンスが同一地域にデプロイされている場合は、プライベートネットワークアクセスを介してコンテナイメージをプルすることをお勧めします。これにより、プル速度が向上し、パブリックネットワークトラフィックのコストを節約できます。
TCR拡張コンポーネントを使用したクイック構成(推奨)
1. TKEコンソールにログインして、左側ナビゲーションバーの【Cluster】を選択してください。 2. 「Cluster Management」ページでは、クラスターIDを選択して、クラスターの詳細ページへ進みます。
3. クラスターの詳細ページでは、左側の【 Add-on Management】を選択して、「Add-on Management」ページへ進んで、【Create】をクリックします。
4. 「 Create an add-on」ページでは、「TCR」コンポーネントを選択します。下図の通りです:
説明:
現在のTCRコンポーネントは、K8Sのバージョンが1.14と1.16のクラスターのみをサポートします。クラスターのバージョンが現在サポートされていない場合は、手動構成を使用してください。
【View Details】をクリックして、コンポーネント機能と構成手順を確認します。
【Parameter Configurations】をクリックして、コンポーネントを構成します。
5. 「TCR Add-on Parameter Settings」ページでは、【 View Details】で説明されているコンポーネント構成を参照して、関連パラメータを設定します。下図の通りです:
アソシエイトインスタンス:クラスターと同一地域のTCRインスタンスを選択します。
シークレットフリーによる構成プル:デフォルトの構成を使用できます。
プライベートネットワークを介した構成アクセス:プライベートネットワークアクセスリンクが「リンクは正常です」と表示されない場合、TCRインスタンスとTKEクラスターの存在するVirtual Private Cloud(VPC)間のプライベートネットワークリンクを構成するには、プライベートネットワークアクセスコントロールをご参照ください。 6. 【OK】をクリックして、コンポーネント選択インターフェースに戻します。
7. コンポーネント選択インターフェースで【 Done】をクリックして、クラスターのTCR拡張コンポーネントをインストールします。
8. コンポーネントがインストールされると、クラスターには、追加の構成なしで、プライベートネットワーク上のアソシエイトインスタンス内のイメージをシークレットフリーでプルする機能があります。下図の通りです:
プライベートネットワークアクセスとアクセス証明の手動構成
1. プライベートネットワークアクセスの構成
2. TCRインスタンスとTKEクラスターの存在するVPC間のプライベートネットワークリンクが確立されると、TKEクラスターでは、TCRインスタンスのドメイン名の解析を構成する必要があります。実際の状況に応じて、次の方法を選択します:
クラスター作成時にノードHostを構成する
TKEクラスターを作成する「CVM構成」の手順では、【 Advanced Settings】を選択して、「Node Launch Configuration」で次のように入力します:
echo '172.21.17.69 demo.tencentcloudcr.com' >> /etc/hosts
既存クラスターのノードHostを構成する
クラスターの各ノードにログインして、次のコマンドを実行します:
echo '172.21.17.69 demo.tencentcloudcr.com' >> /etc/hosts
172.21.17.69およびdemo.tencentcloudcr.comを、実際に使用されるプライベートネットワーク解析IPおよびTCRインスタンスのドメイン名に置き換えてください。
2. アクセス証明の構成
ネームスペースの新規作成時、アクセス証明をデリバーするには、次の手順をご参照ください。
1. TKEコンソールにログインして、左側ナビゲーションバーの【Cluster 】を選択してください。 2. 「 Cluster Management」ページでは、クラスターIDを選択して、クラスターの詳細ページへ進みます。
3. 左側の【Namespace】を選択して、「Namespace」ページへ進んで、【Create】をクリックします。
4. 「Create Namespace」ページへ進んで、「Auto-issue TKE image repository access credential」をチェックし、クラスタがアクセスする必要のあるTCRインスタンスを選択します。以下の通りです。
5. 【Create Namespace】をクリックして、作成します。
作成が完了すると、インスタンスのアクセス証明がネームスペースに自動的にデリバーされます。左側の【 Configuration Management】>【Secret】を選択し、「Secret」ページへ進んで、アクセス証明を確認できます。例えば、1000090225xx-tcr-m3ut3qxx-dockercfgです。その中で、1000090225xxは、ネームスペースを作成するためのサブアカウントUINで、tcr-m3ut3qxxは、選択されたインスタンスのインスタンスIDです。
既存
のネームスペースにアクセス証明をデリバーするには、次の手順をご参照ください。 2. クラスターの詳細ページでは、左側の【 Configuration Management】>【Secret】を選択し、「Secret」ページへ進みます。
3. 「Secret」ページでは【 Create 】をクリックして、「 Create Secret 」ページへ進み、アクセス証明をデリバーするには、次の情報をご参照ください。下図の通りです:
主なパラメータの情報は以下の通りです: Secretタイプ:【Dockercfg】を選択します。
有効範囲:証明をデリバーする必要のあるネームスペースをチェックします。
ウェアハウスのドメイン名:TCRインスタンスのアクセスドメイン名を入力します。
ユーザー名とパスワード:手順1で取得されたユーザー名とパスワードを入力します。 4. 【Create Secret 】をクリックして、デリバーを完了します。
TCRインスタンス内のコンテナイメージを使用したワークロードの作成
1. クラスターの詳細ページでは、左側の【Workload】>【Deployment】を選択します。
2. 「Deployment」ページへ進んで、【 Create】をクリックします。
3. 「Create Workload」ページへ進んで、ワークロードを作成するには、次の情報をご参照ください。。
主なパラメータの情報は以下の通りで、他のパラメータは必要に応じて設定してください。
ネームスペース:アクセス証明がデリバーされたネームスペースを選択します。
インスタンス内のコンテナ:
イメージ:【Select Image】をクリックし、ポップアップ表示された「Select Image」ウィンドウでは、TCRインスタンス内のコンテナイメージを選択します。以下の通りです。
イメージアクセス証明:
TCR拡張コンポーネントがインストールされているクラスター:構成する必要はありません。
TCR拡張コンポーネントがインストールされていないクラスター:【Add Image Access Credential 】を選択し、アクセス証明の構成手順でデリバーしたアクセス証明を選択します。以下の通りです。
4. 他のパラメータ設定が完了すると、【 Create Workload】をクリックして、ワークロードのデプロイ進捗状況を確認します。
正常にデプロイが完了すると、「Deployment」ページでは、ワークロードの「実行/期待Podの数」が「1/1」であると確認できます。下図の通りです: