사용자 클러스터 업데이트

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

개요

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

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

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

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

시작하기 전에

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

클러스터의 보안 그룹을 수정하려면 AWS용 Anthos 클러스터 사용자 클러스터를 관리하는 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. AWSClusterspec.controlPlane.securityGroupIDs 필드를 수정합니다.

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

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

    다음 예시에는 보안 그룹 sg-12345678absg-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. AWSClusterspec.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
    

다음 단계