스테이트풀(Stateful) 워크로드 업데이트

이 문서에서는 Google Distributed Cloud (GDC) 에어 갭 Kubernetes 클러스터에서 실행되는 기존 스테이트풀 워크로드를 업데이트하는 방법을 설명합니다. 애플리케이션이 리소스 사용량 및 구성 최적화에 따라 발전하므로 Kubernetes 클러스터에서 기본 포드 사양을 업데이트하여 이러한 워크로드 변경사항을 반영해야 합니다. 스테이트풀 워크로드 업데이트 계획에 대한 자세한 내용은 Kubernetes 문서의 업데이트 전략을 참조하세요.

이 문서는 조직의 애플리케이션 워크로드 업데이트를 담당하는 애플리케이션 운영자 그룹 내 개발자를 대상으로 합니다. 자세한 내용은 다음 자료를 참조하세요. GDC 에어 갭 문서의 대상 독자

시작하기 전에

이 문서의 작업을 완료하려면 필요한 권한을 요청하고 환경을 준비해야 합니다.

IAM 역할 요청

스테이트풀 워크로드를 업데이트하는 데 필요한 권한을 얻으려면 특정 역할이 있어야 합니다. 필요한 역할은 조직 범위 공유 클러스터 또는 프로젝트 범위 표준 클러스터 내에서 작업하는지 여부에 따라 다릅니다. 자세한 내용은 Kubernetes 클러스터 구성을 참조하세요.

공유 클러스터 역할

공유 클러스터에서 워크로드를 만들거나, 삭제하거나, 수정하거나, 보려면 프로젝트 IAM 관리자에게 네임스페이스 관리자 (namespace-admin) 역할을 부여해 달라고 요청하세요. 이 역할은 프로젝트 네임스페이스에 바인딩됩니다.

표준 클러스터 역할

표준 클러스터에서 워크로드를 만들거나, 삭제하거나, 수정하거나, 보려면 프로젝트 IAM 관리자에게 클러스터 개발자 (cluster-developer) 역할을 부여해 달라고 요청하세요. 이 역할은 프로젝트 네임스페이스에 바인딩됩니다.

개발 환경 준비

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

  • Kubernetes 클러스터 이름을 찾거나 플랫폼 관리자 그룹의 구성원에게 클러스터 이름이 무엇인지 물어봅니다.

  • 로그인하고 생성합니다 Kubernetes 클러스터의 kubeconfig 파일.

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

StatefulSet 리소스 업데이트

StatefulSet를 업데이트하려면 새 매니페스트 파일 또는 업데이트된 매니페스트 파일을 적용합니다. 이 방법은 확장하거나 애플리케이션의 새 버전을 지정하는 등 StatefulSet를 다양하게 변경하는 경우에 유용합니다.

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

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

다음을 바꿉니다.

  • KUBERNETES_CLUSTER_KUBECONFIG: 스테이트풀 워크로드를 실행하는 클러스터의 kubeconfig 파일입니다.

  • NAMESPACE: 네임스페이스입니다. 공유 클러스터의 경우 프로젝트 네임스페이스여야 합니다. 표준 클러스터의 경우 모든 네임스페이스일 수 있습니다.

  • STATEFULSET_FILE: 업데이트된 StatefulSet 매니페스트 파일의 이름입니다.

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

StatefulSet 리소스 업데이트 롤아웃 검사

StatefulSet 객체의 업데이트 롤아웃 상태 및 기록에 관한 자세한 정보를 볼 수 있습니다. StatefulSet 객체의 롤아웃을 취소할 수도 있습니다.

롤아웃 검사

StatefulSet 리소스의 롤아웃을 검사하려면 다음을 실행합니다.

kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG -n NAMESPACE \
    rollout status statefulset STATEFULSET_NAME
  • KUBERNETES_CLUSTER_KUBECONFIG: 스테이트풀 워크로드를 실행하는 클러스터의 kubeconfig 파일입니다.

  • NAMESPACE: 네임스페이스입니다. 공유 클러스터의 경우 프로젝트 네임스페이스여야 합니다. 표준 클러스터의 경우 모든 네임스페이스일 수 있습니다.

  • STATEFULSET_NAME: 업데이트된 StatefulSet 객체의 이름입니다.

롤아웃 기록 가져오기

StatefulSet 리소스의 롤아웃 기록을 보려면 다음을 실행합니다.

kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG -n NAMESPACE \
    rollout history statefulset STATEFULSET_NAME
  • KUBERNETES_CLUSTER_KUBECONFIG: 스테이트풀 워크로드를 실행하는 클러스터의 kubeconfig 파일입니다.

  • NAMESPACE: 네임스페이스입니다. 공유 클러스터의 경우 프로젝트 네임스페이스여야 합니다. 표준 클러스터의 경우 모든 네임스페이스일 수 있습니다.

  • STATEFULSET_NAME: 업데이트된 StatefulSet 객체의 이름입니다.

롤아웃 취소

롤아웃을 취소하려면 다음을 실행합니다.

kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG -n NAMESPACE \
    rollout undo statefulset STATEFULSET_NAME

다음을 바꿉니다.

  • KUBERNETES_CLUSTER_KUBECONFIG: 스테이트풀 워크로드를 실행하는 클러스터의 kubeconfig 파일입니다.

  • NAMESPACE: 네임스페이스입니다. 공유 클러스터의 경우 프로젝트 네임스페이스여야 합니다. 표준 클러스터의 경우 모든 네임스페이스일 수 있습니다.

  • STATEFULSET_NAME: StatefulSet 객체의 이름입니다.

다음 단계