このトピックでは、非公開 Docker レジストリを使用する場合に、Connect Agent を更新する方法について説明します。Connect の詳細については、プロダクトのドキュメントをご覧ください。
概要
ユーザー クラスタを Google Cloud Console で登録する場合、クラスタ内に Connect Agent という名前の Kubernetes Deployment が作成されます。Connect Agent によって、クラスタと Google Cloud コンソールの間に長時間暗号化された接続が確立されます。
Google が Connect Agent を更新することがあります。非公開レジストリをクラスタで使用する場合は、次の手順に沿って Connect Agent を更新してください。
更新された Connect Agent のイメージを pull する
Connect Agent のイメージを gcr.io
から pull し、レジストリに push します。
docker pull gcr.io/gkeconnect/gkeconnect-gce:release docker tag gcr.io/gkeconnect/gkeconnect-gce:release \ [PRIVATE_REGISTRY_HOST]/gkeconnect/gkeconnect-gce:release docker push [PRIVATE_REGISTRY_HOST]/gkeconnect/gkeconnect-gce:release
ここで、[PRIVATE_REGISTRY_HOST] は非公開 Docker レジストリのホスト名または IP アドレスです。
ユーザー クラスタ登録を更新する
ユーザー クラスタの登録を Google Cloud コンソールに更新します。
gcloud container fleet memberships register[USER_CLUSTER_NAME] \ --context=[CLUSTER_CONTEXT] \ --service-account-key-file=[CONNECT_SA_KEY_FILE] \ --kubeconfig=[KUBECONFIG_PATH] \ --docker-registry=[PRIVATE_REGISTRY_HOST] \ --docker-credential-file=[DOCKER_CONFIG_PATH] \ --project=[PROJECT_ID]
ここで
- [USER_CLUSTER_NAME] は、Google Cloud コンソールに表示される登録済みユーザー クラスタの名前です。
- [CLUSTER_CONTEXT] は、kubeconfig ファイルに示されたクラスタのコンテキストです。この値を取得するには、
kubectl config current-context
を実行します。 - [CONNECT_SA_KEY_FILE] は、接続サービス アカウントの JSON 鍵ファイルのパスです。
- [KUBECONFIG_PATH] は、ユーザー クラスタの kubeconfig のパスです。
[DOCKER_CONFIG_PATH] は、JSON Docker config ファイルのパスです。
前のセクションの
docker
コマンドのdocker
コマンドで使用したconfig.json
ファイルには、追加の不要な認証情報がある可能性があります。クラスタから認証情報を取得することもできます。これにより、誤って追加の認証情報をクラスタに置かないようにすることができます。kubectl get secret regcred \ -o jsonpath='{.data.\.dockerconfigjson}' -n gke-connect | \ base64 -d \ # On BSD systems (like macOS), use base64 -D >private_registry_config.json
上記の [DOCKER_CONFIG_PATH] の代わりに、作成されたファイルのファイルパスを
--docker-credential-file
フラグの値として渡します。[PROJECT_ID] は、ユーザー クラスタが登録されているプロジェクトのプロジェクト ID です。組織内のすべてのプロジェクトを一覧表示する方法については、プロジェクトの一覧表示をご覧ください。