사용자 클러스터 업데이트

이 주제에서는 기존 사용자 클러스터의 구성을 업데이트하는 방법을 설명합니다.

개요

Kubernetes 버전 1.20 이상을 실행하는 사용자 클러스터에서는 다음 특성을 수정할 수 있습니다.

Kubernetes 1.22 이상에서는 EC2 인스턴스 유형을 업데이트할 수 있습니다.

이러한 리소스를 업데이트하려면 AWSCluster 및 AWSNodePool 리소스를 수정합니다.

구성을 업데이트하면 GKE on AWS가 클러스터 또는 노드 풀을 Updating 상태로 전환합니다. 업데이트가 완료되면 클러스터 또는 노드 풀이 Provisioned 상태로 돌아갑니다.

시작하기 전에

사용자 클러스터를 수정하려면 클러스터 및 노드 풀이 Kubernetes 버전 1.20 이상을 실행해야 합니다. 클러스터가 Kubernetes 1.20을 사용하지 않으면 사용자 클러스터 업그레이드를 먼저 수행합니다.

클러스터의 보안 그룹을 수정하려면 GKE on AWS 사용자 클러스터를 관리하는 AWS IAM 역할(anthos-gke.yaml에서 spec.authentication.awsIAM.adminIdentityARNs로 설정됨)에 ec2:ModifyNetworkInterfaceAttribute 권한이 있어야 합니다.

보안 그룹 업데이트

이 섹션에서는 클러스터 및 노드 풀에 대한 보안 그룹을 업데이트합니다. 보안 그룹을 업데이트하려면 다음 단계를 수행합니다.

  1. anthos-aws 디렉터리에서 anthos-gke를 사용하여 컨텍스트를 관리 서비스로 전환합니다.

    cd anthos-aws
    anthos-gke aws management get-credentials

  2. AWSCluster를 만든 YAML 파일을 텍스트 편집기에서 엽니다. 초기 YAML 파일이 없으면 kubectl edit를 사용할 수 있습니다.

    YAML 수정

    사용자 클러스터 만들기 안내를 따랐으면 YAML 파일 이름은 cluster-0.yaml입니다. 이 파일을 텍스트 편집기에서 엽니다.

    kubectl 수정

    kubectl edit를 사용하여 AWSCluster를 수정하려면 다음 명령어를 실행합니다.

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl edit awscluster cluster-name
    

    cluster-name을 AWSCluster로 바꿉니다. 예를 들어 기본 클러스터 cluster-0을 수정하려면 다음 명령어를 실행합니다.

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl edit awscluster cluster-0
    
  3. AWSCluster의 spec.controlPlane.securityGroupIDs 필드를 수정합니다.

    apiVersion: multicloud.cluster.gke.io/v1
    kind: AWSCluster
    ...
    spec:
      controlPlane:
        securityGroupIDs:
          - SECURITY_GROUP_ID
        ...
    

    SECURITY_GROUP_ID를 새 보안 그룹의 ID로 바꿉니다. 여러 보안 그룹을 추가하려면 spec.controlPlane.securityGroupIDs 아래의 배열에 추가 값을 추가합니다.

    다음 예시에는 보안 그룹 sg-12345678ab 및 sg-abcdef1234가 포함되어 있습니다.

    apiVersion: multicloud.cluster.gke.io/v1
    kind: AWSCluster
    spec:
      controlPlane:
        securityGroupIDs:
          - sg-12345678ab
          - sg-abcdef1234
        ...
    
  4. AWSNodePool 리소스의 spec.securityGroupIDs 필드를 수정합니다.

    apiVersion: multicloud.cluster.gke.io/v1
    kind: AWSNodePool
    spec:
      securityGroupIDs:
        - SECURITY_GROUP_ID
      ...
    
  5. 파일을 저장합니다. kubectl edit을 사용하는 경우 kubectl이 변경사항을 자동으로 적용합니다. YAML 파일을 편집하는 경우 다음 명령어를 사용하여 관리형 서비스에 적용합니다.

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl apply -f cluster-0.yaml
    
  6. kubectl로 업데이트 상태를 확인합니다. 업데이트가 완료되면 객체 상태가 Updating에서 Provisioned로 변경됩니다.

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl get AWSClusters,AWSNodePools
    

    예를 들어 클러스터가 업데이트 상태이면 출력이 다음과 비슷하게 표시됩니다.

    NAME        STATE       AGE      VERSION           ENDPOINT
    cluster-0   Updating    10m41s   1.25.5-gke.2100   gke-xyz.elb.us-east-1.amazonaws.com
    
    NAME               CLUSTER     STATE       AGE       VERSION
    cluster-0-pool-0   cluster-0   Updating    10m40s    1.25.5-gke.2100
    

인스턴스 유형 업데이트

이 섹션에서는 클러스터 및 노드 풀의 인스턴스 유형을 업데이트합니다. 인스턴스 유형을 업데이트하려면 다음 단계를 수행합니다.

  1. anthos-aws 디렉터리에서 anthos-gke를 사용하여 컨텍스트를 관리 서비스로 전환합니다.

    cd anthos-aws
    anthos-gke aws management get-credentials

  2. AWSCluster를 만든 YAML 파일을 텍스트 편집기에서 엽니다. 초기 YAML 파일이 없으면 kubectl edit를 사용할 수 있습니다.

    YAML 수정

    사용자 클러스터 만들기 안내를 따랐으면 YAML 파일 이름은 cluster-0.yaml입니다. 이 파일을 텍스트 편집기에서 엽니다.

    kubectl 수정

    kubectl edit를 사용하여 AWSCluster를 수정하려면 다음 명령어를 실행합니다.

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl edit awscluster cluster-name
    

    cluster-name을 AWSCluster로 바꿉니다. 예를 들어 기본 클러스터 cluster-0을 수정하려면 다음 명령어를 실행합니다.

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl edit awscluster cluster-0
    
  3. AWSCluster의 spec.controlPlane.instanceType 필드를 수정합니다.

    apiVersion: multicloud.cluster.gke.io/v1
    kind: AWSCluster
    ...
    spec:
      controlPlane:
        instanceType: AWS_INSTANCE_TYPE
        ...
    

    AWS_INSTANCE_TYPE을 새 인스턴스 유형으로 바꿉니다. 자세한 내용은 지원되는 인스턴스 유형을 참조하세요.

  4. AWSNodePool 리소스의 spec.instanceType 필드를 수정합니다.

    apiVersion: multicloud.cluster.gke.io/v1
    kind: AWSNodePool
    spec:
      instanceType: AWS_INSTANCE_TYPE
      ...
    
  5. 파일을 저장합니다. kubectl edit을 사용하는 경우 kubectl이 변경사항을 자동으로 적용합니다. YAML 파일을 편집하는 경우 다음 명령어를 사용하여 관리형 서비스에 적용합니다.

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl apply -f cluster-0.yaml
    
  6. kubectl로 업데이트 상태를 확인합니다. 업데이트가 완료되면 객체 상태가 Updating에서 Provisioned로 변경됩니다.

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl get AWSClusters,AWSNodePools
    

    예를 들어 클러스터가 업데이트 상태이면 출력이 다음과 비슷하게 표시됩니다.

    NAME        STATE       AGE      VERSION           ENDPOINT
    cluster-0   Updating    10m41s   1.25.5-gke.2100   gke-xyz.elb.us-east-1.amazonaws.com
    
    NAME               CLUSTER     STATE       AGE       VERSION
    cluster-0-pool-0   cluster-0   Updating    10m40s    1.25.5-gke.2100
    

다음 단계