AWSManagementService
리소스에는 GKE on AWS 관리 서비스의 구성 정보가 포함되어 있습니다.
관리 서비스를 만들기 전에 anthos-gke.yaml
이라는 YAML 파일을 구성합니다. anthos-gke
도구는 관리 서비스를 만들 때 이 구성을 사용합니다.
anthos-gke.yaml
파일의 콘텐츠는 anthos-gke
을 사용하여 전용 AWS Virtual Private Cloud(VPC)를 만들지 아니면 기존 AWS VPC를 사용할지에 따라 달라집니다.
전용 VPC
apiVersion: multicloud.cluster.gke.io/v1
kind: AWSManagementService
metadata:
name: management
spec:
version: ANTHOS_CLI_VERSION
region: AWS_REGION
authentication:
awsIAM:
adminIdentityARNs:
- ADMIN_AWS_IAM_ARN
kmsKeyARN: KMS_KEY_ARN
databaseEncryption:
kmsKeyARN: KMS_KEY_ARN
googleCloud:
projectID: GCP_PROJECT_ID
serviceAccountKeys:
managementService: MANAGEMENT_KEY_PATH
connectAgent: CONNECT_KEY_PATH
node: NODE_KEY_PATH
iam:
permissionsBoundary: IAM_PERMISSIONS_BOUNDARY
path: IAM_PATH
dedicatedVPC:
vpcCIDRBlock: VPC_CIDR_BLOCK
availabilityZones:
- ZONE_1
- ZONE_2
- ZONE_3
privateSubnetCIDRBlocks:
- PRIVATE_CIDR_BLOCK_1
- PRIVATE_CIDR_BLOCK_2
- PRIVATE_CIDR_BLOCK_3
publicSubnetCIDRBlocks:
- PUBLIC_CIDR_BLOCK_1
- PUBLIC_CIDR_BLOCK_2
- PUBLIC_CIDR_BLOCK_3
# Optional section
rootVolume:
volumeType: ROOT_VOLUME_TYPE
iops: ROOT_VOLUME_IOPS
kmsKeyARN: ROOT_VOLUME_KEY
dataVolume:
volumeType: DATA_VOLUME_TYPE
iops: DATA_VOLUME_IOPS
kmsKeyARN: DATA_VOLUME_KEY
tags:
tag-name: tag-value
bastionHost:
allowedSSHCIDRBlocks:
- SSH_CIDR_BLOCK
rootVolume:
volumeType: ROOT_VOLUME_TYPE
iops: ROOT_VOLUME_IOPS
kmsKeyARN: ROOT_VOLUME_KEY
bootstrapS3Bucket: BOOTSTRAP_S3_BUCKET
proxy: PROXY_JSON_FILE
terraform:
invokeManually: No
stateGCSBucket: GCS_BUCKET_NAME
기존 VPC
apiVersion: multicloud.cluster.gke.io/v1
kind: AWSManagementService
metadata:
name: management
spec:
version: ANTHOS_CLI_VERSION
region: AWS_REGION
authentication:
awsIAM:
adminIdentityARNs:
- ADMIN_AWS_IAM_ARN
kmsKeyARN: KMS_KEY_ARN
databaseEncryption:
kmsKeyARN: KMS_KEY_ARN
securityGroupIDs:
- SECURITY_GROUP_IDS
googleCloud:
projectID: GCP_PROJECT_ID
serviceAccountKeys:
managementService: MANAGEMENT_KEY_PATH
connectAgent: CONNECT_KEY_PATH
node: NODE_KEY_PATH
iam:
permissionsBoundary: IAM_PERMISSIONS_BOUNDARY
path: IAM_PATH
existingVPC:
subnetID: [MANAGEMENT_SUBNET_ID]
allowedSSHSecurityGroupIDs: [SSH_SECURITY_GROUPS]
# Optional fields
rootVolume:
volumeType: ROOT_VOLUME_TYPE
iops: ROOT_VOLUME_IOPS
kmsKeyARN: ROOT_VOLUME_KEY
dataVolume:
volumeType: DATA_VOLUME_TYPE
iops: DATA_VOLUME_IOPS
kmsKeyARN: DATA_VOLUME_KEY
ubuntuRepositoryMirror: 'packages.cloud.google.com'
bastionHost:
subnetID: [BASTION_HOST_SUBNET_ID]
allowedSSHCIDRBlocks:
- [SSH_CIDR_BLOCK]
rootVolume:
volumeType: ROOT_VOLUME_TYPE
iops: ROOT_VOLUME_IOPS
kmsKeyARN: ROOT_VOLUME_KEY
bootstrapS3Bucket: BOOTSTRAP_S3_BUCKET
tags:
tag-name: tag-value
proxy: PROXY_JSON_FILE
terraform:
invokeManually: No
stateGCSBucket: GCS_BUCKET_NAME
다음 섹션에서는 이러한 필드를 설명합니다.
spec.version
spec.version
값은 anthos-
gke
에서 만드는 관리 서비스의 버전입니다. 버전이 anthos-gke version
의 결과와 일치합니다. 예를 들면 aws-1.14.1-gke.0
입니다.
spec.region
spec.region
값은 관리 서비스를 배포하려는 AWS 리전입니다. 예를 들면 us-east-1
입니다.
spec.authentication.awsIAM
spec.authentication.awsIAM.adminIdentityARNs
값은 GKE on AWS 관리 서비스를 만들 권한이 있는 AWS IAM 사용자의 Amazon 리소스 이름(ARN)이 포함된 문자열입니다. 예를 들면 arn:aws:iam::123456789:user/someuser
입니다.
spec.kmsKeyARN
spec.kmsKeyARN
값은 기본 요건에서 만든 AWS KMS 키의 Amazon 리소스 이름(ARN)이 포함된 문자열입니다.
GKE on AWS는 봉투 암호화에 키를 사용합니다.
예를 들면 arn:aws:kms:us-west-1:123456789:key/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee
입니다.
spec.databaseEncryption
spec.databaseEncryption.kmsKeyARN
값은 GKE on AWS가 클러스터에서 애플리케이션 레이어 보안 비밀을 암호화하는 데 사용하는 AWS KMS 키의 Amazon 리소스 이름(ARN) 또는 키 별칭입니다. 예를 들면 arn:aws:kms:us-west-1:123456789:key/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee
입니다.
spec.securityGroupIDs
spec.securityGroupIDs
값은 관리 서비스 VM에 할당된 추가 AWS 보안 그룹 ID의 목록입니다.
예를 들면 [sg-00123456789abcd, sg-00123456789def1]`입니다.
spec.dedicatedVPC
이 필드는 원하는 VPC 설정을 나타냅니다.
이름 | 설명 | 유형 | 예시 |
---|---|---|---|
vpcCIDRBlock | 원하는 AWS VPC의 CIDR 블록입니다. /16에서 /28비트 사이여야 합니다. | string |
10.0.0.0/16 |
availabilityZones | 제어 영역 복제본을 배포할 가용성 영역입니다. 각 영역에는 자체 서브넷이 있으며 별도의 CIDR 블록이 필요합니다. | list(string) |
[us-east-1a, us-east-1b] |
privateSubnetCIDRBlocks | 각 가용성 영역의 VPC 내에 있는 비공개 서브넷의 CIDR 블록입니다. vpcCIDRBlock 의 하위 집합이어야 합니다. 가용성 영역당 하나의 서브넷이 있어야 합니다. |
list(string) |
[10.0.101.0/24, 10.0.102.0/24] |
publicSubnetCIDRBlocks | 각 가용성 영역의 VPC 내에 있는 공개 서브넷의 CIDR 블록입니다. vpcCIDRBlock 의 하위 집합이어야 합니다. 가용성 영역당 하나의 서브넷이 있어야 합니다. |
list(string) |
[10.0.1.0/24, 10.0.2.0/24] |
bastionAllowedSSHCIDRBlocks | 인바운드 SSH 액세스를 허용하는 CIDR 블록. 이 필드는 GKE on AWS 1.5에서 지원 중단되었습니다. 버전 1.5 이상에서 spec.bastionHost 를 사용하세요. |
string |
[104.132.0.0/14] |
spec.existingVPC
spec.existingVPC
아래의 필드는 GKE on AWS가 기존 AWS VPC를 사용하도록 구성합니다.
이름 | 설명 | 유형 | 예시 |
---|---|---|---|
subnetID | 관리 서비스가 실행되는 서브넷 ID입니다. | string |
subnet-00123456789ab |
allowedSSHSecurityGroupIDs | VPC 내에서 SSH 액세스를 허용하는 보안 그룹 ID의 목록입니다. | list(문자열) | [sg-00123456789abcd, sg-00123456789def1] |
spec.googleCloud
spec.googleCloud
아래의 필드는 Google Cloud 프로젝트와 IAM 서비스 계정 키를 구성합니다.
이름 | 설명 | 유형 | 예시 |
---|---|---|---|
projectID | Google Cloud 프로젝트입니다. | string |
my-gcp-project-id |
serviceAccountKeys | 서비스 계정 키의 파일 경로입니다. | serviceAccountKeys |
spec.googleCloud.serviceAccountKeys
spec.googleCloud.serviceAccountKeys
아래의 필드에는 GCP 서비스 계정 키에 대한 로컬 파일 경로가 포함됩니다. 각 키에 대한 자세한 설명은 기본 요건을 참조하세요.
이름 | 설명 | 유형 | 예시 |
---|---|---|---|
managementService
|
관리자 클러스터에서 사용하는 서비스 계정 키 | 문자열 | path/to/key/management-sa-key.json
|
connectAgent
|
GKE Hub Connect Agent에서 사용하는 서비스 계정 키 | 문자열 | path/to/key/hub-sa-key.json
|
node
|
노드에서 사용하는 서비스 계정 키 | 문자열 | path/to/key/node-sa-key.json
|
spec.iam
spec.iam
아래의 필드는 GKE on AWS 환경에서 선택사항인 AWS IAM 매개변수를 구성합니다.
이름 | 설명 | 유형 | 예시 |
---|---|---|---|
permissionsBoundary | IAM 역할의 권한 경계의 ARN | string |
arn:aws:iam::126285863215:policy/testPolicyBoundary |
경로 | IAM 역할의 경로 | string |
/org_abc/team_abc/member_abc/ |
spec.bastionHost
spec.bastionHost
섹션은 선택사항이며 배스천 호스트를 설명합니다.
배스천 호스트는 공개 서브넷에 배치된 EC2 인스턴스입니다. 지정된 CIDR 블록에서 인바운드 SSH 액세스를 허용하고 GKE on AWS 관리 서비스 및 사용자 클러스터로 아웃바운드 SSH 액세스 권한을 갖습니다.
배스천 호스트를 dedicatedVPC
또는 existingVPC
설치용으로 만들 수 있습니다. allowedSSHCIDRBlocks
필드는 허용되는 주소의 인바운드 범위를 지정하며 비어 있지 않아야 합니다.
배스천 호스트가 없으면 GKE on AWS는 새 배스천 호스트를 만듭니다.
dedicatedVPC
설치 시 GKE on AWS는 서브넷을 만듭니다.existingVPC
설치 시 배스천 호스트의 서브넷을 제공하고 이 서브넷이 VPC에 연결되어 있는지 확인해야 합니다.
배스천 호스트를 수정하려면 spec.bastionHost
필드를 변경하거나 삭제한 다음 anthos-gke aws management init
를 실행한 후 anthos-gke aws management apply
를 실행합니다.
이름 | 설명 | 유형 | 예시 |
---|---|---|---|
subnetID | 배스천 호스트가 실행되는 서브넷의 ID입니다. existingVPC 설치의 경우 서브넷은 포트 22에서 액세스할 수 있는 인그레스를 허용해야 합니다. 또한 VPC가 이 서브넷에서 인바운드 액세스를 허용하는지 확인합니다. dedicatedVPC 설치의 경우 이 필드를 지정하지 마세요. GKE on AWS는 필요한 액세스 권한으로 서브넷을 프로비저닝합니다. |
문자열 | subnet-003bdf7b0f5e21e45 |
allowedSSHCIDRBlocks | 인바운드 SSH 액세스를 허용하는 CIDR 블록. | list(string) |
[104.132.0.0/14] |
rootVolume | 배스천 호스트의 루트 볼륨을 설명하는 객체입니다. | object |
{volumeType: gp2} |
spec.rootVolume, spec.dataVolume 및 spec.bastionHost.rootVolume
다음 표에서는 다음 객체의 공통 필드를 설명합니다.
spec.rootVolume
: 컨트롤 플레인 루트 디스크 볼륨spec.dataVolume
: 컨트롤 플레인 데이터 디스크 볼륨spec.bastionHost.rootVolume
: 배스천 호스트 루트 디스크 볼륨
이름 | 설명 | 유형 | 예시 | 필수 |
---|---|---|---|---|
볼륨 유형 | 노드의 AWS EBS 볼륨 유형입니다. gp2 (기본값) 또는 gp3 일 수 있습니다. |
string |
gp2 |
아니요 |
iops | 볼륨에 대해 초당 프로비저닝된 IO 작업량 (IOPS) 입니다. volumeType 가 GP3 일 때만 유효합니다. 자세한 내용은 범용 SSD 볼륨(gp3)을 참조하세요. |
integer |
5000 |
아니요 |
kmsKeyARN | EBS 볼륨을 암호화하는 데 사용되는 AWS KMS 키의 ARN입니다. 자세한 내용은 고객 관리 CMK를 사용하여 볼륨 암호화를 참조하세요. | string |
arn:aws:kms:us-west-1:123456789:key/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee |
없음 |
spec.tags
이름 | 설명 | 유형 | 예시 |
---|---|---|---|
tags | 관리 서비스를 지원하는 각 AWS 리소스에 할당되는 선택사항인 키/값 메타데이터입니다. | map(string) |
{환경: 프로덕션, 팀: 애널리틱스} |
spec.proxy
spec.proxy
필드는 선택사항인 HTTP/HTTPS 프록시를 구성합니다.
이름 | 설명 | 유형 | 예시 |
---|---|---|---|
proxy | 프록시 구성 파일의 경로. | anthos-gke.yaml 의 상대 경로 |
proxy.json |
spec.bootstrapS3Bucket
spec.bootstrapS3Bucket
필드는 GKE on AWS의 S3 버킷 이름을 구성합니다 .
이름 | 설명 | 유형 | 예시 |
---|---|---|---|
bootstrapS3Bucket | GKE on AWS가 구성 정보를 저장하는 AWS S3 버킷 이름의 선택사항인 필드입니다. 동일한 AWS 리전에 GKE on AWS 관리 서비스를 여러 개 만들려면 이 값을 고유한 버킷 이름으로 설정합니다. | string |
example-s3-bucket |
spec.terraform
spec.terraform.invokeManually
필드는 관리 서비스를 만들지 않도록 anthos-gke
명령어를 구성합니다.
이름 | 설명 | 유형 | 예시 |
---|---|---|---|
invokeManually | 구성을 빌드하고 검증한 후 관리 서비스를 만들지 않도록 anthos-gke 명령줄 도구를 구성하는 선택적인 필드입니다. invokeManually 를 Yes 로 설정하면 Terraform 구성 파일을 수동으로 수정하고 적용할 수 있습니다. |
Yes , No |
Yes |
stateGCSBucket | Terraform이 구성 데이터를 저장할 기존 Google Cloud Storage 버킷을 지정하는 선택적 필드입니다. | string |
example-GCS-bucket |