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

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

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

시작하기 전에

이 문서의 작업을 완료하려면 다음 리소스와 역할이 있어야 합니다.

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

    • Kubernetes 클러스터 이름을 찾거나 플랫폼 관리자 그룹의 구성원에게 클러스터 이름을 묻습니다.

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

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

  • 공유 클러스터에서 스테이트풀 워크로드를 업데이트하는 데 필요한 권한을 얻으려면 조직 IAM 관리자에게 프로젝트 네임스페이스의 네임스페이스 관리자 역할(namespace-admin)을 부여해 달라고 요청하세요.

  • 표준 클러스터에서 스테이트풀 워크로드를 업데이트하는 데 필요한 권한을 얻으려면 조직 IAM 관리자에게 표준 클러스터의 클러스터 개발자 역할 (cluster-developer)을 부여해 달라고 요청하세요.

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 객체의 이름입니다.

다음 단계