스테이트리스 워크로드 확장

이 문서에서는 Google Distributed Cloud (GDC) 오프라인 Kubernetes 클러스터에서 실행되는 기존 스테이트리스 워크로드를 확장하는 방법을 설명합니다. 컨테이너 워크로드 요구사항이 변경되면 스테이트리스(Stateless) 워크로드에서 실행되는 포드를 확장해야 합니다.

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

시작하기 전에

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

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

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

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

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

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

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

배포 확장하기

Kubernetes의 확장 기능을 사용하여 배포에서 실행되는 포드 수를 적절하게 확장합니다.

배포의 포드 자동 확장

Kubernetes는 수요가 변화할 때 배포를 수동으로 업데이트할 필요가 없도록 자동 확장 기능을 제공합니다. 다음 단계를 완료하여 배포의 포드를 자동 확장합니다.

  1. 수평형 포드 자동 확장 처리기가 CPU 비율을 적절하게 측정할 수 있도록 배포에서 CPU 리소스 요청을 설정하세요.

  2. 배포에서 수평형 포드 자동 확장 처리기를 설정합니다.

    kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG \
        -n NAMESPACE \
        autoscale deployment DEPLOYMENT_NAME \
        --cpu-percent=CPU_PERCENT \
        --min=MIN_NUMBER_REPLICAS \
        --max=MAX_NUMBER_REPLICAS
    

    다음을 바꿉니다.

    • KUBERNETES_CLUSTER_KUBECONFIG: 클러스터의 kubeconfig 파일입니다.

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

    • DEPLOYMENT_NAME: 자동 확장할 배포의 이름입니다.

    • CPU_PERCENT: 모든 포드에서 요청할 대상 평균 CPU 사용률입니다(백분율로 표시).

    • MIN_NUMBER_REPLICAS: 자동 확장 처리에서 프로비저닝할 수 있는 포드 수의 하한입니다.

    • MAX_NUMBER_REPLICAS: 자동 확장 처리에서 프로비저닝할 수 있는 포드 수의 상한입니다.

  3. 수평형 포드 자동 확장 처리의 현재 상태를 확인합니다.

    kubectl get hpa
    

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

    NAME              REFERENCE                          TARGET    MINPODS   MAXPODS   REPLICAS   AGE
    DEPLOYMENT_NAME   Deployment/DEPLOYMENT_NAME/scale   0% / 50%  1         10        1          18s
    

배포의 포드를 수동으로 확장

배포를 수동으로 확장하려면 다음을 실행하세요.

kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG \
    -n NAMESPACE \
    scale deployment DEPLOYMENT_NAME \
    --replicas NUMBER_OF_REPLICAS

다음을 바꿉니다.

  • KUBERNETES_CLUSTER_KUBECONFIG: 클러스터의 kubeconfig 파일입니다.

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

  • DEPLOYMENT_NAME: 자동 확장할 배포의 이름입니다.

  • DEPLOYMENT_NAME: 배포에 있는 복제된 Pod 객체의 수입니다.

다음 단계