비공개 레지스트리를 사용하여 Connect Agent 업데이트

이 주제에서는 비공개 Docker 레지스트리를 사용하는 경우 Connect Agent를 업데이트하는 방법을 설명합니다. Connect에 대한 자세한 내용은 제품 문서를 참조하세요.

개요

Google Cloud 콘솔에 사용자 클러스터를 등록하도록 선택하면 클러스터에 Connect Agent라는 Kubernetes Deployment가 생성됩니다. Connect Agent는 클러스터와 Google Cloud 콘솔 간에 장기간 암호화된 연결을 설정합니다.

Google에서 Connect Agent를 업데이트하는 경우도 있습니다. 클러스터에서 비공개 레지스트리를 사용하는 경우 다음 안내에 따라 Connect Agent를 업데이트합니다.

업데이트된 커넥트 이미지 가져오기

gcr.io에서 Connect Agent 이미지를 가져와서 레지스트리에 푸시합니다.

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 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]은 Google Cloud 콘솔에 표시되는 등록된 사용자 클러스터의 이름입니다.
  • [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 구성 파일의 경로입니다.

    이전 섹션 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입니다. 조직의 모든 프로젝트를 나열하는 방법을 알아보려면 프로젝트 나열을 참조하세요.