알파 클러스터 만들기

알파 클러스터는 Kubernetes 알파 API 및 기능을 사용 설정하고 예정된 부 버전의 알파 버전을 실행할 수 있는 수명이 짧은 Google Kubernetes Engine (GKE) 클러스터입니다. 이 문서에서는 알파 클러스터를 만들고, 특정 기능 게이트를 사용 설정 또는 사용 중지하고, 빠른 출시 채널에서 알파 패치 버전을 실행하는 방법을 보여줍니다. 알파 클러스터는 예정된 Kubernetes 기능 및 버전을 실험하려는 얼리 어답터 및 플랫폼 관리자를 대상으로 합니다.

GKE 클러스터의 작동 방식과 만들 GKE 클러스터 유형을 선택하는 방법에 대한 자세한 내용은 GKE 클러스터 아키텍처클러스터 구성 선택사항 정보를 참조하세요.

시작하기 전에

시작하기 전에 다음 태스크를 수행했는지 확인합니다.

  • Google Kubernetes Engine API를 사용 설정합니다.
  • Google Kubernetes Engine API 사용 설정
  • 이 태스크에 Google Cloud CLI를 사용하려면 설치한 후 초기화합니다. gcloud CLI를 이전에 gcloud CLI를 설치했으면 최신 버전을 gcloud components update 명령어를 실행하여 가져옵니다. 이전 gcloud CLI 버전에서는 이 문서의 명령어를 실행하지 못할 수 있습니다.

필요한 역할

알파 클러스터를 만들고 상호작용하는 데 필요한 권한을 얻으려면 관리자에게 프로젝트의 Kubernetes Engine 클러스터 관리자 (roles/container.clusterAdmin) IAM 역할을 부여해 달라고 요청하세요. 역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.

커스텀 역할이나 다른 사전 정의된 역할을 통해 필요한 권한을 얻을 수도 있습니다.

GKE의 IAM 서비스 계정 설정

GKE는 노드에 연결된 IAM 서비스 계정을 사용하여 로깅 및 모니터링과 같은 시스템 태스크를 실행합니다. 적어도 이러한 노드 서비스 계정에는 프로젝트에 대한 Kubernetes Engine 기본 노드 서비스 계정(roles/container.defaultNodeServiceAccount) 역할이 있어야 합니다. 기본적으로 GKE는 프로젝트에 자동으로 생성되는 Compute Engine 기본 서비스 계정을 노드 서비스 계정으로 사용합니다.

Compute Engine 기본 서비스 계정에 roles/container.defaultNodeServiceAccount 역할을 부여하려면 다음 단계를 완료합니다.

콘솔

  1. 시작 페이지로 이동합니다.

    시작 페이지로 이동

  2. 프로젝트 번호 필드에서 클립보드에 복사를 클릭합니다.
  3. IAM 페이지로 이동합니다.

    IAM으로 이동

  4. 액세스 권한 부여를 클릭합니다.
  5. 새 주 구성원 필드에 다음 값을 지정합니다.
    PROJECT_NUMBER-compute@developer.gserviceaccount.com
    PROJECT_NUMBER를 복사한 프로젝트 번호로 바꿉니다.
  6. 역할 선택 메뉴에서 Kubernetes Engine 기본 노드 서비스 계정 역할을 선택합니다.
  7. 저장을 클릭합니다.

gcloud

  1. 프로젝트 번호를 Google Cloud 찾습니다.
    gcloud projects describe PROJECT_ID \
        --format="value(projectNumber)"

    PROJECT_ID를 프로젝트 ID로 바꿉니다.

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

    12345678901
    
  2. Compute Engine 기본 서비스 계정에 roles/container.defaultNodeServiceAccount 역할을 부여합니다.
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member="serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com" \
        --role="roles/container.defaultNodeServiceAccount"

    PROJECT_NUMBER를 이전 단계의 프로젝트 번호로 바꿉니다.

알파 클러스터 만들기

Google Cloud 콘솔 또는 gcloud CLI를 사용하여 알파 클러스터를 만들 수 있습니다. 다음과 같은 이유로 gcloud CLI를 사용하는 것이 좋습니다.

  • 알파 클러스터에 권장되는 빠른 출시 채널에 클러스터를 등록할 수 있습니다.
  • 기본값과 다르게 사용 설정 또는 사용 중지할 알파 또는 베타 기능 게이트를 지정할 수 있습니다.

콘솔

  1. Google Cloud 콘솔에서 Kubernetes 클러스터 만들기 페이지로 이동합니다.

    Kubernetes 클러스터 만들기로 이동

  2. 클러스터 기본사항 섹션에서 다음을 완료합니다.

    1. 클러스터의 이름을 입력합니다.
    2. 위치 유형에서 영역을 선택한 후 클러스터의 영역을 선택합니다.
    3. 멀티 영역 클러스터를 만드는 경우 기본 노드 위치 지정 체크박스를 선택한 후 노드 풀을 실행할 추가 영역을 선택합니다.
    4. 출시 채널 드롭다운 목록에서 채널 없음 (지원 중단됨)을 선택합니다.

      등록합니다.
    5. 선택사항: 버전 드롭다운 목록에서 컨트롤 플레인 버전을 지정합니다.

  3. 선택사항: 새 클러스터의 다른 설정을 구성합니다.

  4. 선택사항: 새 클러스터를 Fleet에 등록하려면 Fleet 등록 섹션으로 이동하여 Google Cloud 콘솔의 새 클러스터 만들기 및 등록 지침을 따라 클러스터 등록을 완료합니다.

  5. 탐색창의 노드 풀에서 default-pool을 클릭합니다.

  6. 노드 풀 세부정보 섹션에서 다음을 완료합니다.

    1. 기본 노드 풀이름을 입력합니다.
    2. 선택사항: 노드 버전을 선택합니다.
    3. 클러스터에서 만들 노드 수를 입력합니다. 노드 및 해당 리소스(예: 방화벽 경로)에 사용 가능한 리소스 할당량이 있어야 합니다.
    4. 선택사항: 노드 자동 업그레이드를 사용 중지하도록 선택할 수 있지만 이 옵션을 선택하기 전에 노드 자동 업그레이드를 사용 중지하기 전 고려사항을 검토하는 것이 좋습니다.
    5. 자동 업그레이드 사용 설정자동 복구 사용 설정 을 선택 취소합니다.
  7. 탐색창의 노드 풀에서 노드를 클릭합니다.

  8. 이미지 유형 드롭다운 목록에서 노드 이미지를 선택합니다.

  9. 인스턴스에 사용할 기본 머신 구성을 선택합니다. 요금은 머신 유형마다 다르게 청구됩니다. 기본 머신 유형은 e2-medium입니다. 머신 유형 가격 정보는 머신 유형 가격표를 참조하세요.

  10. 부팅 디스크 유형 드롭다운 목록에서 디스크 유형을 선택합니다.

  11. 부팅 디스크 크기를 입력합니다.

  12. 선택사항: 탐색창의 노드 풀에서 보안을 클릭합니다.

  13. 원하는 경우 노드에 커스텀 IAM 서비스 계정을 지정합니다.
    1. 고급 설정 페이지에서 보안 섹션을 펼칩니다.
    2. 서비스 계정 메뉴에서 원하는 서비스 계정을 선택합니다.

    Compute Engine 기본 서비스 계정 대신 노드에서 사용할 수 있는 최소 권한의 IAM 서비스 계정을 지정하는 것이 좋습니다. 최소 권한의 서비스 계정을 만드는 방법은 최소 권한 서비스 계정 사용을 참조하세요.

  14. 탐색창의 클러스터에서 기능을 클릭합니다.

  15. 이 클러스터에서 Kubernetes 알파 기능 사용 설정을 클릭합니다.

  16. 경고를 읽고 결과를 이해합니다를 선택합니다.

  17. 만들기를 클릭합니다.

gcloud

다음 명령어를 실행합니다.

gcloud container clusters create CLUSTER_NAME \
    --release-channel=CHANNEL \
    --enable-kubernetes-alpha \
    --no-enable-autorepair \
    --no-enable-autoupgrade \
    --location CONTROL_PLANE_LOCATION [\
    --alpha-cluster-feature-gates FEATURE_GATES_LIST]

다음을 바꿉니다.

  • CLUSTER_NAME: 선택한 클러스터의 이름입니다.
  • CHANNEL: 출시 채널의 유형입니다. 이 값은 다음 중 하나여야 합니다.

    • rapid: 알파 클러스터에 권장되는 채널인 빠른 출시 채널에 등록합니다.
    • regular: 정식 출시 채널에 등록합니다.
    • stable: 안정화 출시 채널에 등록합니다.
    • none: 출시 채널에 등록하지 않습니다. 이 옵션은 지원 중단되었으며 삭제될 예정입니다.
  • CONTROL_PLANE_LOCATION: 클러스터의 컨트롤 플레인에 대한 Compute Engine 위치입니다. 리전 클러스터의 경우 리전 또는 영역 클러스터의 경우 영역을 제공합니다.

  • --cluster-version VERSION: (선택사항) 클러스터에서 실행할 GKE 버전을 지정합니다. 생략되면 클러스터는 현재 버전 테이블에 표시된 대로 선택한 출시 채널의 클러스터 생성을 위한 기본 패치 버전을 실행합니다.

  • FEATURE_GATES_LIST: 기본값과 다르게 사용 설정 또는 사용 중지할 기능 게이트 목록입니다. 각 문자열은 기능 게이트의 사용 설정 또는 사용 중지를 나타냅니다. 예를 들면 featureX=true, featureY=false입니다. 이 플래그를 생략하면 GKE는 GKE의 기본값을 사용하여 클러스터를 만듭니다. 즉, Kubernetes 버전에서 사용 가능한 모든 알파 기능 게이트가 사용 설정됩니다. Kubernetes에서 기본적으로 사용 설정되는 베타 기능 게이트도 사용 설정됩니다. 특정 버전에서 사용 가능한 기능 게이트와 기본적으로 사용 설정되는 베타 기능에 대한 자세한 내용은 Kubernetes 문서의 알파 또는 베타 기능의 기능 게이트를 참조하세요. 이 플래그를 포함하면 GKE에서 기본적으로 기능 게이트를 설정하는 방식에서 사용 설정된 기능 게이트가 수정됩니다. 자세한 내용은 기능 게이트 및 알파 클러스터를 참조하세요.

Compute Engine 기본 서비스 계정 대신 노드에서 사용할 수 있는 최소 권한의 IAM 서비스 계정을 지정하는 것이 좋습니다. 최소 권한의 서비스 계정을 만드는 방법은 최소 권한 서비스 계정 사용을 참조하세요.

gcloud CLI에서 커스텀 서비스 계정을 지정하려면 명령어에 다음 플래그를 추가합니다.

--service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com

SERVICE_ACCOUNT_NAME을 최소 권한 서비스 계정 이름으로 바꿉니다.

알파 클러스터가 업그레이드되지 않고 30일 후 삭제된다는 경고 확인 메시지가 표시됩니다.

This will create a cluster with Kubernetes alpha features enabled.
- This cluster will not be covered by the GKE SLA and should
  not be used for production workloads.
- You will not be able to upgrade the master or nodes.
- The cluster will be deleted after 30 days.

kubectl을 사용하여 클러스터와 상호작용

클러스터를 만든 후에는 kubectl을 구성해야 명령줄에서 클러스터와 상호작용할 수 있습니다.

알파 클러스터의 기능 게이트 상태 확인

알파 클러스터를 사용하면 기능 게이트를 선택적으로 사용 설정하거나 사용 중지할 수 있습니다. 자세한 내용은 기능 게이트 및 알파 클러스터를 참조하세요.

클러스터의 기능 게이트 상태를 확인하려면 기능 게이트 상태 확인을 참조하세요.

알파 클러스터에서 알파 패치 버전 실행

빠른 출시 채널에 등록한 알파 클러스터는 예정된 Kubernetes 부 버전의 알파 패치 버전을 실행할 수 있습니다. 이러한 알파 버전을 사용하면 GKE가 신속 채널의 모든 클러스터에서 해당 마이너 버전을 사용할 수 있게 하기 전에 다음 마이너 버전의 기능과 변경사항을 사전 체험판으로 테스트할 수 있습니다.

알파 클러스터에서 알파 패치 버전을 식별하고 실행하려면 다음 단계를 따르세요.

  1. 신속 채널에서 사용 가능한 알파 버전을 식별합니다.

    gcloud container get-server-config \
        --flatten="channels" --filter="channels.channel=RAPID" \
        --location=LOCATION \
        --format="yaml(channels.channel,channels.previewVersions)"
    

    LOCATION을 알파 클러스터를 만들려는 리전(예: us-central1)으로 바꿉니다.

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

    channels:
      channel: RAPID
      previewVersions:
      - 1.37.0-gke.1173000+preview
    

    출력이 비어 있으면 해당 리전에서 알파 버전을 사용할 수 없는 것입니다. 다른 리전을 사용해 보거나 신속 채널 출시 노트 를 확인하여 버전 정보를 확인하세요.

  2. 알파 클러스터를 만듭니다.

    gcloud container clusters create CLUSTER_NAME \
        --release-channel=rapid \
        --enable-kubernetes-alpha \
        --no-enable-autorepair \
        --no-enable-autoupgrade \
        --location=CONTROL_PLANE_LOCATION \
        --cluster-version=ALPHA_VERSION
    

    다음을 바꿉니다.

    • CLUSTER_NAME: 알파 클러스터의 이름입니다.
    • CONTROL_PLANE_LOCATION: 클러스터의 컨트롤 플레인에 대한 리전 또는 영역입니다. 이전 단계에서 알파 버전 사용 가능 여부를 확인한 리전 또는 해당 리전의 영역을 사용합니다.
    • ALPHA_VERSION: 이전 단계의 출력에서 클러스터에서 실행할 특정 알파 패치 버전입니다.

알파 클러스터가 만료되는 시기 확인

알파 클러스터가 만료되는 시기를 확인하려면 다음 명령어를 실행합니다.

gcloud container clusters list

기능 게이트를 사용하여 알파 클러스터 생성 문제 해결

유효하지 않은 기능 게이트 또는 클러스터의 Kubernetes 버전에서 지원되지 않는 기능 게이트로 클러스터를 만들려고 하면 클러스터가 오류 상태로 생성될 수 있습니다.

Cloud Logging에서 다음과 유사한 메시지를 확인할 수 있습니다.

failed to set feature gates from initial flags-based config:
unrecognized feature gate: UNRECOGNIZED_FEATURE_GATE_NAME

이 오류가 발생하면 실패한 클러스터를 삭제하세요. 해당 Kubernetes 버전과의 기능 게이트의 맞춤법 및 호환성을 확인합니다. 그런 다음 클러스터를 다시 생성해 보세요.

다음 단계