以前のバージョンの GKE On-Prem のドキュメントを表示しています。最新のドキュメントをご覧ください

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

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

概要

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

Google が Connect Agent を更新することがあります。プライベート レジストリをクラスタで使用する場合は、次の手順に従って Connect Agent を更新してください。

更新された Connect イメージの 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 alpha container hub register-cluster [USER_CLUSTER_NAME] \
  --context=[CLUSTER_CONTEXT] \
  --service-account-key-file=[CONNECT_SA_KEY_FILE] \
  --kubeconfig-file=[KUBECONFIG_PATH] \
  --docker-image=[DOCKER_IMAGE] \
  --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_IMAGE] は、非公開レジストリ内のタグ付きイメージパスです(例: example.com/gkeconnect/gkeconnect-gce:release)。
  • [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 です。 組織におけるすべてのプロジェクトのリストを表示する方法については、プロジェクトのリスト表示をご覧ください。