プライベート レジストリを使用した Connect Agent の更新

このトピックでは、プライベート Docker レジストリを使用する場合に、Connect Agent を更新する方法について説明します。Connect の詳細については、プロダクトのドキュメントをご覧ください。

概要

ユーザー クラスタを Google Cloud Console で登録する場合、クラスタ内に Connect Agent という名前の Kubernetes Deployment が作成されます。Connect Agent によって、クラスタと Cloud Console の間に長時間暗号化された接続が確立されます。

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 アドレスです。

ユーザー クラスタ登録の更新

ユーザー クラスタの登録を Cloud Console に更新します。

gcloud container hub 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] は、Cloud Console に表示される登録済みユーザー クラスタの名前です。
  • [CLUSTER_CONTEXT] は、kubeconfig ファイルに示されたクラスタのコンテキストです。この値を取得するには、kubectl config current-context を実行します。
  • [CONNECT_SA_KEY_FILE]は、接続サービスアカウントの JSON キーファイルへのパスです。
  • [KUBECONFIG_PATH] は、ユーザー クラスタの kubeconfig へのパスです。
  • [DOCKER_CONFIG_PATH] は、JSON Docker 構成ファイルのパスです。

    前のセクションの 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です。 組織におけるすべてのプロジェクトのリストを表示する方法については、プロジェクトのリスト表示をご覧ください。