컨테이너 배포

이 페이지에서는 Binary Authorization이 사용 설정된 Google Kubernetes Engine(GKE) 클러스터에 컨테이너 이미지를 배포하는 방법을 설명합니다. 배포에 사용하는 명령어는 Binary Authorization을 사용하지 않는 클러스터에 이미지를 배포하는 데 사용하는 명령어와 동일합니다.

시작하기 전에

GKE와의 상호작용을 위해 kubectl을 설치합니다.

kubectl 구성

kubectl 설치를 위해 로컬 kubeconfig 파일을 업데이트해야 합니다. 이 파일은 GKE에서 클러스터에 액세스하는 데 필요한 사용자 인증 정보와 엔드포인트 정보를 제공합니다.

kubectl을 구성하려면 다음을 입력하세요.

gcloud container clusters get-credentials \
    --zone ZONE \
    CLUSTER_NAME

각 항목의 의미는 다음과 같습니다.

  • ZONE은 클러스터가 실행 중인 GKE 영역의 이름입니다(예: us-central1-a1).
  • CLUSTER_NAME은 클러스터의 이름입니다.

컨테이너 이미지 배포

kubectl run 명령어를 사용하여 이미지를 배포할 수 있습니다.

Binary Authorization에서 이미지 경로와 다이제스트를 모두 사용하여 증명을 조회하므로 1.0 또는 latest와 같은 태그가 아닌 다이제스트를 사용하여 이미지를 배포해야 합니다.

이미지를 배포하려면 다음을 실행하세요.

kubectl run ${DEPLOYMENT_NAME} \
    --image ${IMAGE_PATH}@${IMAGE_DIGEST} --port 8080

각 항목의 의미는 다음과 같습니다.

  • DEPLOYMENT_NAME은 GKE 워크로드에 사용할 이름입니다.
  • IMAGE_PATH:IMAGE_DIGEST는 Container Registry 또는 다른 레지스트리의 이미지 경로 및 다이제스트입니다(예: gcr.io/google-samples/hello-app@sha256:c62ead5b8c15c231f9e786250b07909daf6c266d0fcddd93fea882eb722c3be4).

정책 재정의

Binary Authorization은 컨테이너 이미지를 배포할 때 승인 정책을 재정의할 수 있는 Break Glass라는 기능을 지원합니다. 이 기능은 Kubernetes 허용 컨트롤러 사양의 권장사항과 일치하도록 구현됩니다.

다음 예시에서는 정책을 재정의하기 위해 Break Glass를 사용하여 GKE pod를 만드는 방법을 보여줍니다.

  1. YAML 형식으로 구성 파일을 만듭니다. 이 파일에는 pod를 만드는 데 필요한 기타 정보뿐만 아니라 Break Glass 주석이 포함되어 있습니다.

    apiVersion: v1
    kind: Pod
    metadata:
      name: pod-name
      annotations:
        alpha.image-policy.k8s.io/break-glass: "true"
    spec:
      containers:
      - name: container-name
        image: gcr.io/google-samples/hello-app@sha256:c62ead5b8c15c231f9e786250b07909daf6c266d0fcddd93fea882eb722c3be4
    

    또한 GKE를 선택하면 JSON 형식을 사용하여 새 리소스의 구성을 지정할 수도 있습니다.

  2. kubectl을 사용하여 pod를 만듭니다.

    kubectl create -f YAML_file
    

이미지가 실행 중인지 확인

이미지가 실행 중인지 확인하려면 다음을 입력하세요.

kubectl get pods

위 명령어가 반환하는 메시지는 다음과 같으며, 배포가 성공했음을 나타냅니다.

NAME                            READY     STATUS    RESTARTS   AGE
hello-server-579859fb5b-h2k8s   1/1       Running   0          1m

감사 로그 보기

Cloud Logging에서 시행 상태 및 배포 메시지를 보는 방법은 감사 로그 보기를 참조하세요.