이 페이지에서는 AWS용 GKE 클러스터 설정을 업데이트하는 방법을 설명합니다. 이 안내에 따라 Kubernetes 버전을 포함한 클러스터의 업데이트 가능한 설정을 업데이트할 수 있습니다. 버전 업그레이드는 가장 일반적인 클러스터 업데이트 작업 중 하나이므로 별도의 클러스터 업그레이드 페이지에 클러스터 버전을 업그레이드하는 방법이 설명되어 있습니다.
클러스터를 업데이트하는 이유
클러스터를 업데이트하는 이유는 다음과 같습니다.
- 클러스터 설명 업데이트
- 클러스터의 주석 업데이트
- 클러스터의 관리 권한 사용자 목록 업데이트
- 클러스터의 로깅 구성 업데이트
- 암호화 키 순환
- 클러스터 제어 영역의 보안 그룹 업데이트
여기에 나열되지 않은 클러스터의 다른 필드를 업데이트할 수도 있습니다.
업데이트할 수 있는 필드의 전체 목록은 gcloud container aws clusters update
및 projects.locations.awsClusters.patch
문서를 참조하세요.
기본 요건
클러스터의 필드를 업데이트하려면
gkemulticloud.googleapis.com/awsClusters.update
Identity and Access Management 권한이 있어야 합니다.클러스터의 보안 그룹을 업데이트하려면 클러스터의 제어 영역 역할에
ec2:ModifyNetworkInterfaceAttribute
권한이 있어야 합니다. 자세한 내용은 제어 영역 역할 만들기를 참조하세요.또한 클러스터 태그를 업데이트하려면 클러스터의 API 역할에 다음 AWS 권한이 있어야 합니다.
autoscaling:CreateOrUpdateTags
autoscaling:DeleteTags
ec2:CreateTags
ec2:DescribeLaunchTemplates
ec2:DescribeSecurityGroupRules
ec2:DeleteTags
elasticloadbalancing:AddTags
elasticloadbalancing:RemoveTags
클러스터의 API 역할에 권한을 만들고 추가하는 방법을 알아보려면 AWS IAM 역할 만들기를 읽어보세요.
업데이트 프로세스
AWS용 GKE가 클러스터를 업데이트하는 프로세스는 업데이트 유형에 따라 다릅니다. 변경해도 AWS용 GKE가 리소스를 다시 시작하거나 다시 만들지 않고 업데이트할 수 있는 경우도 있습니다(예: 클러스터 설명 업데이트). AWS용 GKE는 이러한 변경사항을 즉시 적용합니다.
변경하는 경우 제어 영역 노드를 다시 시작해야 하는 경우도 있습니다(예: Kubernetes 버전 업데이트). 이러한 업데이트의 경우 AWS용 GKE는 다음 단계로 구성된 '순차적 업데이트'를 수행합니다.
- 업데이트할 제어 영역 인스턴스 하나를 선택합니다. AWS용 GKE는 비정상 인스턴스가 있으면 정상 인스턴스보다 먼저 업데이트합니다.
- 인스턴스에 대해 새 실행 템플릿을 만듭니다.
- 자동 확장 그룹의 실행 템플릿을 업데이트합니다.
- 인스턴스를 삭제합니다. AWS가 인스턴스를 다시 만들고 새 구성을 사용해서 인스턴스가 부팅됩니다.
- 새 인스턴스에서 상태 확인을 수행합니다.
- 상태 확인이 성공하면 다른 인스턴스를 선택하고 동일한 단계를 수행합니다. 모든 인스턴스가 다시 시작 또는 다시 생성될 때까지 이 주기를 반복합니다. 상태 점검이 실패하면 AWS용 GKE는 클러스터를
DEGRADED
상태로 설정하고 업데이트를 중지합니다. 자세한 내용은 다음 섹션을 참조하세요. - 원래 실행 템플릿을 삭제합니다.
업데이트 실패 시
업데이트 후 AWS용 GKE는 클러스터에서 상태 점검을 수행합니다.
상태 점검이 실패하면 클러스터가 DEGRADED
로 표시됩니다. 다음 Google Cloud CLI 명령어를 사용하여 클러스터 상태를 표시할 수 있습니다.
gcloud container aws clusters describe CLUSTER_NAME \
--location=GOOGLE_CLOUD_LOCATION
다음을 바꿉니다.
CLUSTER_NAME
: 클러스터 이름GOOGLE_CLOUD_LOCATION
: 클러스터를 관리하는 Google Cloud 리전
클러스터 업데이트
Google Cloud 콘솔, Google Cloud CLI 또는 GKE Multi-cloud API를 사용하여 여러 클러스터 필드를 한 번에 업데이트할 수 있습니다.
업데이트 메서드 선택
콘솔, gcloud CLI, GKE Multi-Cloud API를 통해 대부분의 필드를 업데이트할 수 있습니다. 일부 필드는 두 메커니즘 중 하나를 통해서만 업데이트할 수 있습니다. 콘솔을 사용하여 클러스터를 업데이트하려면 먼저 클러스터에 로그인하기 위한 인증 방법을 선택하고 구성해야 합니다. 자세한 내용은 클러스터에 연결 및 인증을 참조하세요.
콘솔
Google Cloud 콘솔에서 Google Kubernetes Engine 클러스터 개요 페이지로 이동합니다.
클러스터가 있는 Google Cloud 프로젝트를 선택합니다.
클러스터 목록에서 클러스터 이름을 선택한 후 측면 패널에서 세부정보 보기를 선택합니다.
세부정보 탭의 변경할 필드에서
수정을 선택합니다.예를 들어 다른 사용자에게 클러스터 관리자 권한을 부여하려면 관리자 옆에 있는
수정을 선택하고 사용자의 이메일 주소를 입력합니다.변경이 완료되면 완료를 선택합니다.
gcloud
gcloud CLI를 사용하여 클러스터를 업데이트할 때는 항상 AWS용 GKE에 업데이트할 클러스터를 알려주는 CLUSTER_NAME
및 GOOGLE_CLOUD_LOCATION
필드를 포함해야 합니다. 다음 명령어에는 업데이트할 필드만 포함합니다. 명령어를 실행하기 전에 다른 필드를 삭제합니다.
gcloud container aws clusters update CLUSTER_NAME \
--location=GOOGLE_CLOUD_LOCATION \
--cluster-version=CLUSTER_VERSION \
--admin-users=USERNAME_LIST \
--root-volume-iops=ROOT_VOLUME_IOPS \
--root-volume-size=ROOT_VOLUME_SIZE \
--root-volume-type=ROOT_VOLUME_TYPE \
--security-group-ids=SECURITY_GROUP_IDS
다음을 바꿉니다.
CLUSTER_NAME
: 클러스터 이름GOOGLE_CLOUD_LOCATION
(필수): 클러스터를 관리하는 지원되는 Google Cloud 리전(예:us-west1
)CLUSTER_VERSION
: 새로운 지원되는 클러스터 버전USERNAME_LIST
: 쉼표로 구분된 사용자 이름 목록입니다(예: 'kai@example.com,hao@example.com,kalani@example.com'). 이 클러스터에 대한 관리자 권한을 부여할 사용자의 이메일 주소입니다. 이 설정의 이름이 클러스터의 모든 이전 관리자 목록을 대체합니다.ROOT_VOLUME_IOPS
: 루트 볼륨의 초당 최대 I/O 작업 수ROOT_VOLUME_SIZE
: 루트 볼륨의 크기(GB)ROOT_VOLUME_TYPE
: 루트 볼륨의 AWS EBS 볼륨 유형SECURITY_GROUP_IDS
: 클러스터 제어 영역 인스턴스에 추가할 AWS 보안 그룹 IDSECURITY_GROUP_IDS
: 클러스터 제어 영역 인스턴스에 추가할 AWS 보안 그룹 ID
API
GKE Multi-cloud API를 사용하여 클러스터를 업데이트할 때는 HTTP 요청에 항상 CLUSTER_NAME
및 GOOGLE_CLOUD_LOCATION
필드를 포함해야 합니다. 이러한 필드는 GKE on AWS에 업데이트할 클러스터를 알려줍니다. 또한 요청에 API 엔드포인트를 포함해야 합니다. 업데이트할 필드가 있는 JSON 파일을 만듭니다. JSON 파일과 UPDATE_MASK
에 업데이트할 필드만 포함합니다.
다음 예시에서는 API를 통해 클러스터를 업데이트하는 방법을 보여줍니다.
업데이트할 수 있는 필드 목록을 포함한 자세한 내용은 projects.locations.awsClusters.patch
메서드 문서를 참조하세요.
업데이트할 필드가 있는
cluster_update.json
이라는 JSON 파일을 만듭니다.{ "controlPlane": { "version": "CLUSTER_VERSION", }, "description": "CLUSTER_DESCRIPTION", "authorization": { "adminUsers": [ { "username": USERNAME1, "username": USERNAME2, "username": USERNAME3 } ] } }
다음을 바꿉니다.
CLUSTER_VERSION
: 새로운 지원되는 클러스터 버전입니다. 클러스터를 업그레이드할 때는 모든 부 버전 단계를 따라 업그레이드해야 합니다.CLUSTER_DESCRIPTION
: 새 클러스터 설명USERNAME1
,USERNAME2
,USERNAME3
: 이 클러스터에 대한 관리자 권한을 부여할 사용자의 이메일 주소입니다. 이 필드의 이름이 클러스터의 모든 이전 관리자 목록을 대체합니다.
다음 명령어로 GKE Multi-cloud API를 통해 이 설정을 업데이트합니다.
curl -d @cluster_update.json -X PATCH \ ENDPOINT/projects/PROJECT_ID/locations/GOOGLE_CLOUD_LOCATION/awsClusters/CLUSTER_NAME?update_mask=UPDATE_MASK
다음을 바꿉니다.
ENDPOINT
(필수): Google Cloud 서비스 엔드포인트PROJECT_ID
(필수): Google Cloud 프로젝트GOOGLE_CLOUD_LOCATION
(필수): 클러스터를 관리하는 지원되는 Google Cloud 리전(예:us-west1
)CLUSTER_NAME
(필수): 클러스터 이름UPDATE_MASK
(필수): 업데이트할 필드를 나타내는 다음 플래그 중 하나 이상을 쉼표로 구분한 목록입니다. 이 예시에서는 다음을 지정합니다.- controlPlane.version
- 설명
- authorization.admin_users
클러스터의 보안 그룹 업데이트
클러스터의 보안 그룹을 업데이트하려면 클러스터의 제어 영역 역할에 ec2:ModifyNetworkInterfaceAttribute
권한이 있어야 합니다. 자세한 내용은 제어 영역 역할 만들기를 참조하세요.
gcloud container aws clusters update
명령어를 사용하여 클러스터 제어 영역에 추가 보안 그룹을 추가할 수 있습니다.
gcloud container aws clusters update CLUSTER_NAME \
--location=GOOGLE_CLOUD_LOCATION \
--security-group-ids=SECURITY_GROUP_IDS
다음을 바꿉니다.
CLUSTER_NAME
: 클러스터 이름GOOGLE_CLOUD_LOCATION
: 클러스터를 관리하는 지원되는 Google Cloud 리전(예:us-west1
)SECURITY_GROUP_IDS
: 클러스터 제어 영역 인스턴스에 추가할 AWS 보안 그룹 ID
클러스터 보안 그룹 삭제
Google Cloud CLI를 사용하여 클러스터에서 기본이 아닌 모든 보안 그룹을 삭제할 수 있습니다. 클러스터를 업데이트하려면 다음을 실행합니다.
gcloud container aws clusters update CLUSTER_NAME \
--location=GOOGLE_CLOUD_LOCATION \
--clear-security-group-ids
다음을 바꿉니다.
CLUSTER_NAME
: 클러스터 이름GOOGLE_CLOUD_LOCATION
: 클러스터를 관리하는 지원되는 Google Cloud 리전(예:us-west1
)
클러스터 볼륨 정보 업데이트
Google Cloud CLI를 사용하여 클러스터의 제어 영역 볼륨을 업데이트할 수 있습니다. 볼륨 KMS 키를 업데이트하려면 키 순환을 참조하세요.
볼륨 크기, 유형 또는 IOPS를 업데이트하려면 다음 명령어를 실행합니다.
gcloud container aws clusters update CLUSTER_NAME \
--location=GOOGLE_CLOUD_LOCATION \
--root-volume-iops=ROOT_VOLUME_IOPS
--root-volume-size=ROOT_VOLUME_SIZE
--root-volume-type=ROOT_VOLUME_TYPE
다음을 바꿉니다.
CLUSTER_NAME
: 클러스터 이름GOOGLE_CLOUD_LOCATION
: 클러스터를 관리하는 지원되는 Google Cloud 리전(예:us-west1
)ROOT_VOLUME_IOPS
: 초당 루트 볼륨의 IO 작업ROOT_VOLUME_SIZE
: 루트 볼륨의 크기(GB)ROOT_VOLUME_TYPE
: 루트 볼륨의 AWS EBS 볼륨 유형
Logging 구성 업데이트
Google Cloud CLI를 사용하여 클러스터의 Cloud Logging 구성 설정을 업데이트할 수 있습니다. 로깅 구성을 업데이트하려면 다음 명령어를 실행합니다.
gcloud container aws clusters update CLUSTER_NAME \
--location=GOOGLE_CLOUD_LOCATION \
--logging=LOGGING_CONFIG \
다음을 바꿉니다.
CLUSTER_NAME
: 클러스터 이름GOOGLE_CLOUD_LOCATION
: 클러스터를 관리하는 지원되는 Google Cloud 리전(예:us-west1
)LOGGING_CONFIG
: [SYSTEM] 또는 [SYSTEM,WORKLOAD]
다음 단계
- 볼륨 KMS 키를 업데이트하려면 키 순환을 참조하세요.
- 업데이트 가능한 필드에 대한 자세한 내용은
gcloud container aws clusters update
참조 문서를 확인하세요. projects.locations.awsClusters.patch
REST API 참고 리소스를 참조하세요.