이 문서에서는 Google Distributed Cloud(GDC) 에어 갭 Kubernetes 클러스터에서 실행 중인 기존 스테이트리스(Stateless) 워크로드를 검사하는 방법을 설명합니다. 스테이트리스(Stateless) 워크로드를 사용하면 데이터 또는 애플리케이션 상태를 저장하지 않고도 애플리케이션 배포를 실행할 수 있습니다. GDC 콘솔 또는 kubectl CLI를 사용하여 스테이트리스(Stateless) 워크로드를 보고 리소스 사용량과 워크로드 상태를 모니터링할 수 있습니다.
이 문서는 조직의 애플리케이션 워크로드를 관리하는 애플리케이션 운영자 그룹 내 개발자를 위한 것입니다. 자세한 내용은 GDC 에어 갭 문서의 대상 그룹을 참고하세요.
시작하기 전에
이 문서의 작업을 완료하려면 필요한 권한을 요청하고 환경을 준비해야 합니다.
IAM 역할 요청
스테이트리스(Stateless) 워크로드를 보고 검사하는 데 필요한 권한을 얻으려면 특정 역할이 있어야 합니다. 필요한 역할은 조직 범위 공유 클러스터 또는 프로젝트 범위 표준 클러스터 내에서 작업하는지 여부에 따라 다릅니다. 자세한 내용은 Kubernetes 클러스터 구성을 참고하세요.
공유 클러스터 역할
수행할 작업에 따라 프로젝트 IAM 관리자에게 프로젝트 네임스페이스에서 다음 역할을 부여해 달라고 요청하세요.
- 워크로드 뷰어 (
workload-viewer): 공유 클러스터에 배포된 모든 워크로드를 봅니다. - 네임스페이스 관리자 (
namespace-admin): 공유 클러스터 프로젝트 네임스페이스에서 워크로드를 만들거나 삭제하거나 수정하거나 봅니다.
이러한 역할은 프로젝트 네임스페이스에 바인딩됩니다.
표준 클러스터 역할
표준 클러스터에서 워크로드를 만들거나 삭제하거나 수정하거나 보려면 프로젝트 IAM 관리자에게 클러스터 개발자 (cluster-developer) 역할을 부여해 달라고 요청하세요. 이 역할은 프로젝트 네임스페이스에 바인딩됩니다.
개발 환경 준비
API를 사용하여 Kubernetes 클러스터 에 대해 명령어를 실행하려면 다음 리소스가 있어야 합니다.
Kubernetes 클러스터 이름을 찾거나 플랫폼 관리자 그룹의 구성원에게 클러스터 이름이 무엇인지 물어봅니다.
로그인하고 생성합니다 Kubernetes 클러스터의 kubeconfig 파일.
Kubernetes 클러스터의 kubeconfig 경로를 사용하여 이 안내의
KUBERNETES_CLUSTER_KUBECONFIG를 바꿉니다.
프로젝트의 컨테이너 워크로드 보기
프로젝트의 컨테이너 워크로드를 보려면 다음 단계를 완료하세요.
콘솔
탐색 메뉴에서 Kubernetes Engine > 워크로드 를 선택합니다.
다음과 같은 컨테이너 워크로드의 세부정보를 볼 수 있습니다.
- 이름
- 유형
- 포드 수
- Kubernetes 클러스터
- 최종 수정일
컨테이너 워크로드는 속한 Kubernetes 클러스터별로 구성됩니다. 클러스터 드롭다운을 선택하여 클러스터 컨텍스트를 전환합니다.
kubectl
다음 명령어를 실행하여 프로젝트의 모든 포드를 나열합니다.
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
배포 검사
Deployment 리소스의 구성요소에 대한 자세한 정보를 요청하려면 검사하려는 항목을 직접 타겟팅하는 명령어를 실행합니다.
Deployment 객체 정보 가져오기
Deployment 객체에 대한 자세한 정보를 가져오려면 다음을 실행합니다.
kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG -n NAMESPACE \
describe deployment DEPLOYMENT_NAME
다음을 바꿉니다.
KUBERNETES_CLUSTER_KUBECONFIG: 배포를 실행하는 클러스터의 kubeconfig 파일입니다.NAMESPACE: 네임스페이스입니다. 공유 클러스터의 경우 프로젝트 네임스페이스여야 합니다. 표준 클러스터의 경우 모든 네임스페이스일 수 있습니다.DEPLOYMENT_NAME:Deployment객체의 이름입니다.
YAML 형식으로 라이브 구성 표시
Deployment 객체의 매니페스트를 보려면 다음을 실행합니다.
kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG -n NAMESPACE \
get deployments DEPLOYMENT_NAME -o yaml
이 명령어는 Deployment 객체의 라이브 구성을 YAML 형식으로 표시합니다.
포드 나열
배포에서 만든 Pod 객체를 나열하려면 다음을 실행합니다.
kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG -n NAMESPACE \
get pods -l KEY=VALUE
이 명령어에서 -l 플래그는 지정된 클러스터에서 지정된 키-값 쌍 라벨이 있는 모든 Pod 객체를 나열합니다.
다음을 바꿉니다.
KUBERNETES_CLUSTER_KUBECONFIG: 배포를 실행하는 클러스터의 kubeconfig 파일입니다.NAMESPACE: 네임스페이스입니다. 공유 클러스터의 경우 프로젝트 네임스페이스여야 합니다. 표준 클러스터의 경우 모든 네임스페이스일 수 있습니다.KEY: 배포에서 설정된 키-값 쌍 라벨의 키입니다. 예를 들어.template.metadata.labels필드에app: myapp라벨이 구성된 경우 키는app입니다.VALUE: 배포에서 설정된 키-값 쌍 라벨의 값입니다. 예를 들어.template.metadata.labels필드에app: myapp라벨이 구성된 경우 값은my-app입니다.
예를 들어 Deployment 객체에 app: my-app 라벨을 지정한 경우 다음 명령어를 실행하여 해당 라벨이 있는 Pod 객체를 확인합니다.
kubectl --kubeconfig /tmp/kubeconfig.yaml -n my-namespace \
get pods -l app=my-app
특정 포드 정보 가져오기
특정 Pod 객체에 대한 정보를 가져오려면 다음을 실행합니다.
kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG -n NAMESPACE \
describe pod POD_NAME
다음을 바꿉니다.
KUBERNETES_CLUSTER_KUBECONFIG: 배포를 실행하는 클러스터의 kubeconfig 파일입니다.NAMESPACE: 네임스페이스입니다. 공유 클러스터의 경우 프로젝트 네임스페이스여야 합니다. 표준 클러스터의 경우 모든 네임스페이스일 수 있습니다.POD_NAME: 배포에서 관리하는 포드의 이름입니다.