스테이트리스(Stateless) 워크로드 업데이트

이 페이지에서는 Google Distributed Cloud (GDC) 오프라인 Kubernetes 클러스터에서 실행되는 기존 스테이트리스 워크로드를 업데이트하는 방법을 설명합니다. 리소스 사용량 및 구성 최적화에 따라 애플리케이션이 발전함에 따라 Kubernetes 클러스터에서 기본 포드 사양을 업데이트하여 이러한 워크로드 변경사항을 반영해야 합니다.

이 페이지는 조직의 애플리케이션 워크로드를 업데이트하는 애플리케이션 운영자 그룹의 개발자를 위한 페이지입니다. 자세한 내용은 GDC 오프라인 문서 대상을 참고하세요.

시작하기 전에

Kubernetes 클러스터에 대해 명령어를 실행하려면 다음 리소스가 있어야 합니다.

  1. Kubernetes 클러스터 이름을 찾거나 플랫폼 관리자에게 클러스터 이름을 문의합니다.

  2. Kubernetes 클러스터의 kubeconfig 파일이 없는 경우 로그인하여 생성합니다.

  3. Kubernetes 클러스터의 kubeconfig 경로를 사용하여 이 안내의 KUBERNETES_CLUSTER_KUBECONFIG를 바꿉니다.

상태 비저장 워크로드를 업데이트하는 데 필요한 권한을 얻으려면 조직 IAM 관리자에게 프로젝트 네임스페이스의 네임스페이스 관리자 역할 (namespace-admin)을 부여해 달라고 요청하세요.

배포 업데이트

Deployment 객체를 업데이트하려면 다음을 실행합니다.

kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG -n NAMESPACE \
    apply -f DEPLOYMENT_FILE

다음을 바꿉니다.

  • KUBERNETES_CLUSTER_KUBECONFIG: 배포를 실행하는 클러스터의 kubeconfig 파일입니다.

  • NAMESPACE: 프로젝트 네임스페이스입니다.

  • DEPLOYMENT_FILE: 업데이트할 Deployment 매니페스트 파일의 이름입니다.

kubectl apply 명령어는 매니페스트 파일을 리소스에 적용합니다. 지정된 리소스가 없으면 명령어에 의해 생성됩니다,

배포 내에서 리소스를 업데이트하는 다른 방법도 여러 가지가 있습니다.

컨테이너 이미지 업데이트

Deployment 객체의 이미지를 변경하려면 다음을 실행합니다.

kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG -n NAMESPACE \
    set image deployment DEPLOYMENT_NAME \
    IMAGE=IMAGE:TAG

다음을 바꿉니다.

  • KUBERNETES_CLUSTER_KUBECONFIG: 배포를 실행하는 클러스터의 kubeconfig 파일입니다.

  • NAMESPACE: 프로젝트 네임스페이스입니다.

  • DEPLOYMENT_NAME: 이미지가 포함된 Deployment 객체의 이름입니다.

  • IMAGE: 컨테이너 이미지의 이름입니다.

  • TAG: 컨테이너 이미지에 대해 업데이트할 태그입니다.

배포의 이미지를 업데이트하면 요청이나 제한과 같은 선택기 필드 또는 리소스를 변경하는 데 유용합니다.

예를 들어 nginx라는 Deployment 객체를 1.9.1 버전을 사용하도록 업데이트하려면 다음을 실행합니다.

kubectl --kubeconfig /tmp/kubeconfig.yaml -n my-namespace \
    set image deployment nginx nginx=nginx:1.9.1

업데이트 롤백하기

배포가 불안정해지는 등 업데이트를 롤백하려면 kubectl CLI를 사용하세요. Deployment 객체의 롤아웃 기록은 시스템에 보존되므로 언제든지 롤백할 수 있습니다.

진행 중이거나 완료된 업데이트를 이전 버전으로 롤백하려면 다음을 실행하세요.

kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG \
    -n NAMESPACE \
    rollout undo deployment DEPLOYMENT_NAME

다음을 바꿉니다.

  • KUBERNETES_CLUSTER_KUBECONFIG: 배포를 실행하는 클러스터의 kubeconfig 파일입니다.

  • NAMESPACE: 프로젝트 네임스페이스입니다.

  • DEPLOYMENT_NAME: 롤백할 Deployment 객체의 이름입니다.

특정 버전으로 롤백하려면 다음을 실행합니다.

kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG \
    -n NAMESPACE \
    rollout undo deployment DEPLOYMENT_NAME \
    --to-revision=REVISION_NUMBER

다음을 바꿉니다.

  • KUBERNETES_CLUSTER_KUBECONFIG: 배포를 실행하는 클러스터의 kubeconfig 파일입니다.

  • NAMESPACE: 프로젝트 네임스페이스입니다.

  • DEPLOYMENT_NAME: 롤백할 Deployment 객체의 이름입니다.

  • REVISION_NUMBER: 롤백할 버전을 정의하는 정수입니다(예: 3).