스테이트풀(Stateful) 워크로드 검사

이 문서에서는 Google Distributed Cloud (GDC) 오프라인 Kubernetes 클러스터에서 실행되는 기존 스테이트풀 워크로드를 검사하는 방법을 설명합니다. 스테이트풀(Stateful) 워크로드를 사용하면 영구 컨테이너 스토리지로 애플리케이션을 실행할 수 있습니다. GDC 콘솔 또는 kubectl CLI를 사용하여 스테이트풀 워크로드를 확인하여 리소스 사용량과 워크로드 상태를 모니터링할 수 있습니다.

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

시작하기 전에

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

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

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

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

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

  • 공유 클러스터에 배포된 모든 워크로드를 보는 데 필요한 권한을 얻으려면 조직 IAM 관리자에게 프로젝트 네임스페이스에 워크로드 뷰어 역할(workload-viewer)을 부여해 달라고 요청하세요.

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

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

프로젝트의 컨테이너 워크로드 보기

프로젝트의 컨테이너 워크로드를 보려면 다음 단계를 완료하세요.

콘솔

  • 탐색 메뉴에서 Kubernetes Engine > 워크로드를 선택합니다.

    다음과 같은 컨테이너 워크로드의 세부정보를 볼 수 있습니다.

    • 이름
    • 유형
    • 포드 수
    • Kubernetes 클러스터
    • 최종 수정일

    컨테이너 워크로드는 속한 Kubernetes 클러스터별로 정리됩니다. 클러스터 드롭다운을 선택하여 클러스터 컨텍스트를 전환합니다.

CLI

  • 다음 명령어를 실행하여 프로젝트의 모든 포드를 나열합니다.

    kubectl get pods -n PROJECT_NAMESPACE
    

    출력은 다음과 비슷합니다.

    NAME                        READY   STATUS    RESTARTS   AGE
    nginx-workload-ah-aa-1228   1/1     Running   0          12h
    nginx-workload-ah-ab-6784   1/1     Running   0          11h
    nginx-workload-ah-ac-0045   1/1     Running   0          12h
    

StatefulSet 리소스 검사

StatefulSet 리소스의 구성요소에 관한 자세한 정보를 요청하려면 검사하려는 항목을 직접 타겟팅하는 명령어를 실행하세요.

StatefulSet 객체 정보 가져오기

StatefulSet 객체에 관한 자세한 정보를 가져오려면 다음을 실행합니다.

kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG -n NAMESPACE \
    describe statefulset STATEFULSET_NAME

다음을 바꿉니다.

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

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

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

라이브 구성을 YAML 형식으로 표시

StatefulSet 리소스의 라이브 구성을 YAML 형식으로 표시하려면 다음을 실행합니다.

kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG -n NAMESPACE \
    get statefulset STATEFULSET_NAME -o yaml

다음을 바꿉니다.

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

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

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

포드 나열

StatefulSet에서 생성된 Pod 객체를 나열하려면 다음을 실행합니다.

kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG -n NAMESPACE \
    get pods -l app=APP_NAME

이 명령어에서 -l 플래그는 APP_NAME 라벨이 지정된 모든 Pod 객체를 나열합니다.

다음을 바꿉니다.

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

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

  • APP_NAME: StatefulSet 객체에서 관리하는 상태 저장 애플리케이션의 이름입니다.

특정 포드 정보 가져오기

클러스터에서 특정 Pod에 대한 정보를 가져오려면 다음을 실행합니다.

kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG -n NAMESPACE \
    describe pod POD_NAME

다음을 바꿉니다.

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

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

  • POD_NAME: StatefulSet 객체에 의해 관리되는 포드의 이름입니다.

PVC 나열

클러스터의 PersistentVolumeClaim (PVC) 객체를 나열하려면 다음을 실행합니다.

kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG -n NAMESPACE \
    get pvc

다음을 바꿉니다.

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

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

특정 PVC 정보 가져오기

클러스터에서 특정 PersistentVolumeClaim (PVC)에 관한 정보를 가져오려면 다음을 실행합니다.

kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG -n NAMESPACE \
    describe pvc PVC_NAME

다음을 바꿉니다.

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

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

  • PVC_NAME: StatefulSet 객체에 대해 구성된 PVC의 이름입니다.

PV 정보 가져오기

클러스터에서 특정 PersistentVolume (PV)에 대한 정보를 가져오려면 다음을 실행합니다.

kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG -n NAMESPACE \
    describe pv PV_NAME

다음을 바꿉니다.

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

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

  • PV_NAME: StatefulSet 객체에 대해 구성된 PV의 이름입니다.

다음 단계