이 페이지에서는 Google Distributed Cloud 사용자 클러스터 구성 파일의 필드를 설명합니다.
구성 파일 템플릿 생성
gkeadm
을 사용하여 관리자 워크스테이션을 만든 경우 gkeadm
은 사용자 클러스터 구성 파일의 템플릿을 생성하게 됩니다. gkeadm
은 일부 필드를 사용자를 대신해서 채워넣습니다.
gkeadm
을 사용하여 관리 워크스테이션을 만들지 않은 경우 사용자는 gkectl
을 사용하여 사용자 클러스터 구성 파일의 템플릿을 생성할 수 있습니다.
사용자 클러스터 구성 파일의 템플릿을 생성하려면 다음 안내를 따르세요.
gkectl create-config cluster --config=OUTPUT_FILENAME --gke-on-prem-version=VERSION
다음을 바꿉니다.
OUTPUT_FILENAME
: 생성된 템플릿에 대해 선택한 경로. 이 플래그를 생략하면 gkectl
은 파일 이름을 user-cluster.yaml
로 지정하고 현재 디렉터리에 넣습니다.
VERSION
: 원하는 버전 번호. 예를 들면 gkectl create-config cluster --gke-on-prem-version=1.10.0-gke.8
입니다.
템플릿
필수 필드 및 기본값
필드가 필수로 표시된 경우 완료된 구성 파일은 필드에 값이 입력되어 있어야 합니다.
일부 필드는 조건부 필수입니다. 예를 들어 loadBalancer.kind
가 MetalLB
와 같으면 loadBalancer.metalLB.addressPools
가 필요합니다.
필드에 기본값이 제공된 경우 필드에 아무 값도 입력하지 않으면 클러스터에서 해당 값을 사용합니다. 값을 입력하여 기본값을 재정의할 수 있습니다.
필드가 필수로 표시되지 않고 기본값이 제공되지 않은 경우 필드는 선택사항입니다. 관련이 있는 경우 입력할 수 있지만 입력할 필요는 없습니다.
구성 파일 작성
구성 파일에 다음 섹션에 설명된 대로 필드 값을 입력합니다.
name
필수
문자열
사용자 클러스터의 이름입니다. 이름은 다음 조건을 충족해야 합니다.
- 40자(영문 기준) 이하여야 합니다.
- 소문자 영숫자 문자 또는 하이픈(
-
)만 포함해야 합니다. - 알파벳 문자로 시작해야 합니다.
- 영숫자 문자로 끝나야 합니다.
예를 들면 다음과 같습니다.
name: "my-user-cluster"
gkeOnPremVersion
필수
변경 가능
문자열
사용자 클러스터의 Google Distributed Cloud 버전입니다.
예를 들면 다음과 같습니다.
gkeOnPremVersion: "1.29.0-gke.1456"
preparedSecrets.namespace
준비된 사용자 인증 정보를 사용하려면 이 필드를 입력합니다. 그렇지 않으면 이 필드를 삭제하거나 주석 처리합니다.
변경 불가
문자열
가능한 값: 'gke-onprem-secrets-'로 시작하는 문자열
준비된 보안 비밀이 이 사용자 클러스터에 보존되는 관리자 클러스터의 Kubernetes 네임스페이스 이름입니다.
예:
preparedSecrets: namespace: "gke-onprem-secrets-alice"
enableControlplaneV2
1.30 이상
변경 불가
불리언
자동 입력: true
기본값: true
버전 1.30 이상에서는 새 사용자 클러스터에 Controlplane V2가 필요합니다. 구성 파일에 이 필드를 포함하는 경우 true
로 설정해야 합니다. Controlplane V2를 사용하면 사용자 클러스터의 컨트롤 플레인이 사용자 클러스터 자체의 하나 이상의 노드에서 실행됩니다. Controlplane V2의 이점은 다음과 같습니다.
관리자 및 사용자 클러스터 간의 아키텍처 일관성
장애 격리. 관리자 클러스터 오류가 사용자 클러스터에 영향을 주지 않습니다.
운영 분리. 관리자 클러스터 업그레이드가 사용자 클러스터에 다운타임을 일으키지 않습니다.
배포 분리. 관리자 클러스터와 사용자 클러스터를 다른 장애 도메인 또는 지리적 사이트에 배치할 수 있습니다. 예를 들어 에지 위치의 사용자 클러스터가 관리자 클러스터와 다른 지리적 사이트에 있을 수 있습니다.
1.29 이하
변경 불가
불리언
자동 입력: true
기본값: true
Controlplane V2를 사용 설정하려면 enableControlplaneV2
를 true
로 설정하거나 사용자 클러스터 구성 파일에서 설정을 삭제합니다. 그렇지 않으면 false
로 설정합니다.
Controlplane V2를 사용하면 사용자 클러스터의 컨트롤 플레인이 사용자 클러스터 자체의 하나 이상의 노드에서 실행됩니다. Controlplane V2가 사용 설정되지 않았으면 사용자 클러스터 컨트롤 플레인이 관리자 클러스터에서 실행됩니다.
Controlplane V2를 사용 설정하는 것이 좋습니다.
예를 들면 다음과 같습니다.
enableControlplaneV2: true
vCenter
이 섹션에서는 사용자의 vSphere 환경과 vCenter Server 연결에 대한 정보를 제공합니다.
이 섹션의 필드를 관리자 클러스터에 지정한 필드와 동일하게 하려면 이 필드를 삭제하거나 주석 처리합니다.
필드를 관리자 클러스터에 지정한 것과 다르게 하려면 여기에 입력합니다. vCenter
섹션에 입력된 모든 필드는 관리자 클러스터 구성 파일의 해당 필드를 재정의합니다.
vCenter.address
변경 불가
문자열
기본값: 관리자 클러스터에서 상속
이 사용자 클러스터에 사용하려는 vCenter 서버의 IP 주소 또는 호스트 이름입니다.
자세한 내용은 vCenter 서버 주소 찾기를 참조하세요.
관리자 클러스터에서 사용하는 vCenter Server 인스턴스와 다른 값을 지정하는 경우 Controlplane V2
를 사용 설정해야 하며 network.vCenter.networkName
및 vCenter
섹션의 모든 필수 필드 값을 제공해야 합니다.
예:
vCenter: address: "203.0.113.101"
vCenter: address: "my-vcenter-server-2.my-domain.example"
vCenter.datacenter
변경 불가
문자열
기본값: 관리자 클러스터에서 상속
vSphere 데이터 센터의 상대 경로입니다.
이 필드의 값을 지정하는 경우 다음 사항도 지정해야 합니다.
vCenter.networkName
vCenter.datastore
또는vCenter.storagePolicyName
vCenter.cluster
또는vCenter.resourcePool
지정하는 값은 /
라는 루트 폴더를 기준으로 지정됩니다.
데이터 센터가 루트 폴더에 있으면 값은 데이터 센터의 이름입니다.
예를 들면 다음과 같습니다.
vCenter: datacenter: "my-uc-data-center"
그렇지 않으면 값은 데이터 센터 이름과 함께 하나 이상의 폴더를 포함하는 상대 경로입니다.
예:
vCenter: datacenter: "data-centers/data-center-2"
vCenter.cluster
변경 불가
문자열
기본값: 관리자 클러스터에서 상속
사용자 클러스터 VM이 실행될 ESXi 호스트를 나타내는 vSphere 클러스터의 상대 경로입니다. 이 vSphere 클러스터는 vCenter 데이터 센터에서 물리적 ESXi 호스트의 하위 집합을 나타냅니다.
이 필드의 값을 지정하는 경우 다음 사항도 지정해야 합니다.
vCenter.networkName
vCenter.datacenter
vCenter.datastore
또는vCenter.storagePolicyName
지정하는 값은 /.../DATA_CENTER/vm/
을 기준으로 합니다.
vSphere 클러스터가 /.../DATA_CENTER/vm/
폴더에 있으면 값은 vSphere 클러스터 이름입니다.
예를 들면 다음과 같습니다.
vCenter: cluster: "my-uc-vsphere-cluster"
그렇지 않으면 값은 vSphere 클러스터 이름과 함께 하나 이상의 폴더를 포함하는 상대 경로입니다.
예:
vCenter: cluster: "clusters/vsphere-cluster-2"
vCenter.resourcePool
변경 불가
문자열
기본값: 관리자 클러스터에서 상속
사용자 클러스터 VM의 vCenter 리소스 풀입니다.
기본 리소스 풀을 사용하려면 VSPHERE_CLUSTER/Resources
로 설정합니다.
예를 들면 다음과 같습니다.
vCenter: resourcePool: "my-uc-vsphere-cluster/Resources"
지정하는 값은 /.../DATA_CENTER/host/.../VSPHERE_CLUSTER/Resources/
를 기준으로 합니다.
리소스 풀이 /.../DATA_CENTER/host/.../VSPHERE_CLUSTER/Resources/
의 직접 하위 요소인 경우 값은 리소스 풀의 이름입니다.
예를 들면 다음과 같습니다.
vCenter: resourcePool: "my-uc-resource-pool"
그렇지 않으면 값은 2개 이상의 리소스 풀이 있는 상대 경로입니다.
예를 들면 다음과 같습니다.
vCenter: resourcePool: "uc-resource-pool-1/uc-resource-pool-2"
vCenter.datastore
선택사항
변경 불가
문자열
기본값: 관리자 클러스터에서 상속
사용자 클러스터의 vSphere 데이터 스토어 이름입니다.
지정하는 값은 경로가 아닌 이름이어야 합니다. 값에 폴더를 포함하지 마세요.
예를 들면 다음과 같습니다.
vCenter: datastore: "my-datastore"
이 필드의 값을 지정할 경우 vCenter.storagePolicyName
값을 지정하지 마세요. vCenter.datastore
필드는 Datastore를 스토리지 정책 기반 관리(SPBM)로 마이그레이션할 때 필드를 빈 문자열로 설정하는 경우를 제외하고 변경할 수 없습니다.
vCenter.storagePolicyName
선택사항
변경 불가
문자열
클러스터 노드에 대한 VM 스토리지 정책의 이름입니다.
또한 특정 노드 풀의 노드에 대해 VM 스토리지 정책을 지정할 수 있습니다. 하지만 여기에 지정된 정책은 자체 정책이 없는 모든 노드 풀에 적용됩니다.
자세한 내용은 스토리지 정책 구성을 참조하세요.
이 필드의 값을 지정할 경우 vCenter.datastore
값을 지정하지 마세요.
vCenter.caCertPath
변경 가능
문자열
기본값: 관리자 클러스터에서 상속
vCenter Server의 CA 인증서 경로입니다. 자세한 내용은 vCenter CA 인증서 가져오기를 참조하세요.
예를 들면 다음과 같습니다.
vCenter: caCertPath: "/usr/local/google/home/me/certs/vcenter-ca-cert-2.pem"
이 필드를 업데이트하는 방법에 대한 자세한 내용은 vCenter 인증서 참조 업데이트를 참조하세요.
vCenter.credentials.fileRef.path
변경 가능
문자열
기본값: 관리자 클러스터에서 상속
preparedSecrets.namespace 값을 제공하는 경우 이 필드의 값을 제공하지 마세요. 대신 vCenter.credentials.secretRef.version의 값을 제공하세요.
vCenter 사용자 계정의 사용자 이름과 비밀번호가 포함된 사용자 인증 정보 구성 파일의 경로입니다. 사용자 계정에 관리자 역할 또는 이에 상응하는 권한이 있어야 합니다. vSphere 요구사항을 참조하세요.
gkectl update credentials
를 사용하여 기존 클러스터에서 이 필드를 업데이트할 수 있습니다. 자세한 내용은 서비스 계정 키 순환을 참조하세요.
vCenter 사용자 인증 정보 업데이트에 대한 자세한 내용은 클러스터 사용자 인증 정보 업데이트를 참조하세요.
예:
vCenter: credentials: fileRef: path: "my-config-directory/my-credentials-2.yaml"
vCenter.credentials.fileRef.entry
변경 가능
문자열
기본값: 관리자 클러스터에서 상속
vCenter 사용자 계정의 사용자 이름과 비밀번호가 포함된 사용자 인증 정보 구성 파일의 사용자 인증 정보 블록의 이름입니다.
예:
vCenter: credentials: fileRef: entry: "vcenter-credentials-2"
vCenter.credentials.secretRef.version
문자열
가능한 값: 정수 문자열 또는 'latest'
기본값: 'latest'
preparedSecrets.namespace 값을 제공하는 경우 이 필드를 입력합니다. 그렇지 않으면 이 필드를 삭제하거나 주석 처리합니다.
이 사용자 클러스터에 사용할 vCenter Server 인스턴스의 사용자 이름과 비밀번호가 포함된 관리자 클러스터의 준비된 보안 비밀 버전입니다.
예:
vCenter: credentials: secretRef: version: "1"
vCenter.folder
변경 불가
문자열
기본값: 관리자 클러스터에서 상속
이미 만든 vSphere 폴더의 상대 경로입니다. 이 폴더에는 사용자 클러스터 VM이 저장됩니다.
값을 지정하지 않으면 사용자 클러스터 VM이 /.../DATA_CENTER/vm/
에 배치됩니다.
값을 지정하면 /.../DATA_CENTER/vm/
을 기준으로 합니다.
이 값은 폴더 이름일 수 있습니다.
예를 들면 다음과 같습니다.
vCenter: folder: "my-uc-folder"
또는 값은 2개 이상의 폴더를 포함하는 상대 경로일 수 있습니다.
예:
vCenter: folder: "folders/folder-2"
componentAccessServiceAccountKeyPath
변경 가능
문자열
기본값: 관리자 클러스터에서 상속
구성요소 액세스 서비스 계정의 JSON 키 파일 경로입니다.
예:
componentAccessServiceAccountKeyPath: "my-key-folder/uc-access-key.json"
componentAccessServiceAccountKey.secretRef.version
변경 가능
문자열
가능한 값: 정수 문자열 또는 'latest'
기본값: 'latest'
구성 요소 액세스 서비스 계정의 JSON 키가 포함된 관리자 클러스터의 준비된 보안 비밀 버전입니다.
예:
componentAccessServiceAccountKey: secretRef: version: "1"
privateRegistry
관리자 클러스터가 비공개 레지스트리를 사용 중이고 사용자 클러스터에서 다른 비공개 레지스트리를 사용하도록 하려는 경우에만 이 섹션을 입력합니다. 그렇지 않으면 이 섹션을 삭제하거나 주석 처리합니다.
관리자 클러스터 설정과 다른 설정을 사용하려면 다음 안내를 따르세요.
다른 사용자 이름, 비밀번호, 인증서
(컨트롤 플레인 V2에서만 사용 가능) 다른 비공개 레지스트리 주소
여기에 privateRegistry
필드를 입력합니다. 새 설정은 클러스터를 만들고 업데이트하는 동안 선택됩니다.
privateRegistry.address
변경 불가
문자열
기본값: 관리자 클러스터에서 상속
비공개 Docker 레지스트리를 실행하는 머신의 IP 주소 또는 FQDN(정규화된 도메인 이름)입니다.
예:
privateRegistry: address: "203.0.113.10"
privateRegistry: address: "fqdn.example.com"
privateRegistry.credentials.fileRef.path
변경 가능
문자열
기본값: 관리자 클러스터에서 상속
비공개 레지스트리에 준비된 보안 비밀을 사용하려는 경우 이 필드에 값을 제공하지 마세요. 대신 privateRegistry.credentials.secretRef.version의 값을 제공하세요.
Google Distributed Cloud가 비공개 Docker 레지스트리에 액세스하는 데 사용할 수 있는 계정의 사용자 이름과 비밀번호가 포함된 사용자 인증 정보 구성 파일의 경로입니다.
예:
privateRegistry: credentials: fileRef: path: "my-config-folder/admin-creds.yaml"
privateRegistry.credentials.fileRef.entry
변경 가능
문자열
기본값: 관리자 클러스터에서 상속
사용자 인증 정보 구성 파일의 사용자 인증 정보 블록 이름이며 비공개 Docker 레지스트리 계정의 사용자 이름과 비밀번호가 포함됩니다.
privateRegistry: credentials: fileRef: entry: "private-registry-creds"
privateRegistry.credentials.secretRef.version
문자열
가능한 값: 정수 문자열 또는 'latest'
기본값: 'latest'
preparedSecrets.namespace 값을 제공하고 비공개 레지스트리에 준비된 보안 비밀을 사용하려면 이 필드를 입력합니다. 그렇지 않으면 이 필드를 삭제하거나 주석 처리합니다.
이 사용자 클러스터에 사용할 vCenter Server 인스턴스의 사용자 이름과 비밀번호가 포함된 관리자 클러스터의 준비된 보안 비밀 버전입니다.
예:
privateRegistry: credentials: secretRef: version: "1"
privateRegistry.caCertPath
변경 가능
문자열
기본값: 관리자 클러스터에서 상속
Docker가 비공개 레지스트리에서 이미지를 가져올 때 레지스트리는 인증서를 제공하여 해당 ID를 입증해야 합니다. 레지스트리의 인증서는 인증 기관(CA)에 의해 서명됩니다. Docker는 CA의 인증서를 사용하여 레지스트리의 인증서를 검사합니다.
이 필드를 CA 인증서의 경로로 설정합니다.
예를 들면 다음과 같습니다.
privateRegistry: caCertPath: "my-cert-folder/registry-ca.crt"
network
이 섹션에는 사용자 클러스터 네트워크에 대한 정보가 포함되어 있습니다.
network.hostConfig
이 섹션에는 클러스터 노드인 VM에서 사용하는 NTP 서버, DNS 서버, DNS 검색 도메인에 대한 정보가 포함되어 있습니다. Seesaw 부하 분산기를 사용하는 경우 이 정보는 Seesaw VM에도 적용됩니다.
이 섹션은 다음 중 하나 이상이 true인 경우에 필요합니다.
network.ipMode.type
가static
로 설정됩니다.enableControlplaneV2
가true
로 설정되거나true
로 기본 설정됩니다.loadBalancer.kind
가"Seesaw"
로 설정됩니다.
network.hostConfig.dnsServers
필수
변경 불가
문자열 배열
배열의 최대 요소 수는 3개입니다.
VM의 DNS 서버 주소입니다.
예를 들면 다음과 같습니다.
network: hostConfig: dnsServers: - "172.16.255.1" - "172.16.255.2"
network.hostConfig.ntpServers
필수
변경 불가
문자열 배열
VM에 대해 사용할 시간 서버의 주소입니다.
예:
network: hostConfig: ntpServers: - "216.239.35.0"
network.hostConfig.searchDomainsForDNS
변경 불가
문자열 배열
호스트에 대해 사용할 DNS 검색 도메인입니다. 이러한 도메인은 도메인 검색 목록의 일부로 사용됩니다.
예:
network: hostConfig: searchDomainsForDNS: - "my.local.com"
network.ipMode.type
변경 불가
문자열
자동 입력: 'static'
기본값: 'dhcp'
클러스터 노드가 DHCP 서버에서 IP 주소를 가져오도록 하려면 "dhcp"
로 설정합니다. 사용자가 제공한 목록에서 클러스터 노드에 고정 IP 주소를 선택하려면 이를 "static"
으로 설정합니다.
예를 들면 다음과 같습니다.
network: ipMode: type: "static"
network.ipMode.ipBlockFilePath
network.ipMode.type
= static
인 경우 필수
변경 불가
문자열
클러스터의 IP 블록 파일 경로입니다.
예:
network: ipMode: ipBlockFilePath: "/my-config-folder/user-cluster-ipblock.yaml"
network.serviceCIDR
변경 불가
문자열
자동 입력: '10.96.0.0/20'
>
클러스터의 서비스에 사용할 CIDR 형식의 IP 주소 범위입니다. /24 범위 이상이어야 합니다.
예:
network: serviceCIDR: "10.96.0.0/20"
network.podCIDR
변경 불가
문자열
자동 입력: '192.168.0.0/16'
기본값: '192.168.0.0/16'
클러스터의 포드에 사용할 CIDR 형식의 IP 주소 범위입니다. /18 범위 이상이어야 합니다.
예를 들면 다음과 같습니다.
network: podCIDR: "192.168.0.0/16"
서비스 범위는 포드 범위와 겹치지 않아야 합니다.
서비스 범위와 포드 범위는 클러스터 내부에서 연결하려는 클러스터 외부의 주소와 겹치지 않아야 합니다.
예를 들어 서비스 범위가 10.96.232.0/24이고 포드 범위가 192.168.0.0/16이라고 가정해 보겠습니다. 포드에서 이러한 범위 중 하나의 주소로 전송되는 트래픽은 클러스터 내 트래픽으로 처리되며 클러스터 외부의 대상에 도달하지 않습니다.
특히 서비스 범위와 포드 범위는 다음과 겹치지 않아야 합니다.
모든 클러스터에 있는 노드의 IP 주소
부하 분산기 머신에서 사용하는 IP 주소
컨트롤 플레인 노드 및 부하 분산기에서 사용하는 VIP
vCenter 서버, DNS 서버, NTP 서버의 IP 주소
서비스 및 포드 범위는 RFC 1918 주소 공간에 있는 것이 좋습니다.
다음은 RFC 1918 주소를 사용을 권장하는 이유입니다. 포드 또는 서비스 범위에 외부 IP 주소가 포함되어 있다고 가정해보세요. 포드에서 이러한 외부 주소 중 하나로 전송되는 모든 트래픽은 클러스터 내 트래픽으로 취급되며 외부 대상에 도달하지 않습니다.
network.vCenter.networkName
vCenter.address
가 관리 클러스터에 대해 사용 중인 vCenter 주소와 다른 경우 필수입니다.
변경 불가
문자열
사용자 클러스터 노드의 vSphere 네트워크 이름입니다.
예를 들면 다음과 같습니다.
network: vCenter: networkName: "my-network"
이름에 특수문자가 포함되어 있으면 이스케이프 시퀀스를 사용해야 합니다.
특수문자 | 이스케이프 시퀀스 |
---|---|
슬래시(/ ) |
%2f |
백슬래시(\ ) |
%5c |
퍼센트 기호(% ) |
%25 |
데이터 센터에서 네트워크 이름이 고유하지 않은 경우 전체 경로를 지정할 수 있습니다.
예를 들면 다음과 같습니다.
network: vCenter: networkName: "/my-uc-datacenter/network/my-network"
network.additionalNodeInterfaces
multipleNetworkInterfaces
를 true
로 설정한 경우 이 섹션을 입력합니다.
그렇지 않으면 이 섹션을 삭제하거나 주석 처리합니다.
변경 불가
객체의 배열이며, 각 배열은 클러스터 노드 전체 또는 일부에서 사용할 수 있는 네트워크 인터페이스를 설명합니다.
network.additionalNodeInterfaces[i].networkName
multipleNetworkInterfaces
= true
인 경우 필수
변경 불가
문자열
이 추가 노드 인터페이스가 연결되는 vSphere 네트워크의 이름입니다.
예를 들면 다음과 같습니다.
network: additionalNodeInterfaces: - networkName: "my-node-interface-1"
network.additionalNodeInterfaces[i].type
multipleNetworkInterfaces
= true
인 경우 필수
변경 불가
문자열
예를 들면 다음과 같습니다.
network: additionalNodeInterfaces: - name: "my-node-interface-1" type: "static"
network.additionalNodeInterfaces[i].ipBlockFilePath
network.additionalNodeInterfaces[i].type
= static
인 경우 필수
변경 불가
문자열
이 네트워크 인터페이스가 있는 노드에서 이 네트워크 인터페이스에 사용할 IP 주소를 포함하는 IP 블록 파일의 경로입니다.
예를 들면 다음과 같습니다.
network: additionalNodeInterfaces: - name: "my-node-interface-1" type: "static" ipBlockFilePath: "my-ipblock-file-1"
network.controlPlaneIPBlock
enableControlplaneV2
를 true
로 설정한 경우 이 섹션을 입력합니다. 그렇지 않으면 이 섹션을 삭제하거나 주석 처리합니다.
network.controlPlaneIPBlock.netmask
enableControlplaneV2
= true
인 경우 필수
변경 불가
문자열
예를 들면 다음과 같습니다.
network: controlPlaneIPBlock: netmask: "255.255.255.0"
network.controlPlaneIPBlock.gateway
enableControlplaneV2
= true
인 경우 필수
변경 불가
문자열
예를 들면 다음과 같습니다.
network: controlPlaneIPBlock: gateway: "172.16.21.1"
network.controlPlaneIPBlock.ips
enableControlplaneV2
= true
인 경우 필수
변경 불가
IP 주소와 선택적 호스트 이름을 각각 포함하는 객체 배열
고가용성(HA) 사용자 클러스터의 경우 배열의 요소가 세 개입니다. HA가 아닌 사용자 클러스터의 경우 배열의 요소가 하나입니다.
예를 들면 다음과 같습니다.
network: controlPlaneIPBlock: ips: - ip: "172.16.21.6" hostname: "cp-vm-1" - ip: "172.16.21.7" hostname: "cp-vm-2" - ip: "172.16.21.8" hostname: "cp-vm-3"
loadBalancer
이 섹션에서는 사용자 클러스터의 부하 분산기에 대한 정보를 제공합니다.
loadBalancer.vips.controlPlaneVIP
필수
변경 불가
문자열
사용자 클러스터의 Kubernetes API 서버에 대해 부하 분산기에서 구성하도록 선택한 IP 주소입니다.
예를 들면 다음과 같습니다.
loadBalancer: vips: controlplaneVIP: "203.0.113.3"
loadBalancer.vips.ingressVIP
필수
변경 불가
문자열
인그레스 프록시의 부하 분산기에서 구성하도록 선택한 IP 주소입니다.
예를 들면 다음과 같습니다.
loadBalancer: vips: ingressVIP: "203.0.113.4"
loadBalancer.kind
필수
변경 불가
문자열
자동 입력: 'MetalLB'
"ManualLB"
, "F5BigIP"
, "Seesaw"
또는 "MetalLB"
로 설정합니다.
새로운 기능 및 고급 기능을 사용 설정하려면 서드 파티 부하 분산기(예: F5 BIG-IP 또는 Citrix)가 있는 경우 "ManualLB"
를 사용하거나 번들 솔루션의 경우 "MetalLB"
를 사용하는 것이 좋습니다.
예를 들면 다음과 같습니다.
loadBalancer: kind: "MetalLB"
loadBalancer.manualLB
loadbalancer.kind
를 "manualLB"
로 설정한 경우 이 섹션을 입력합니다. 그렇지 않으면 이 섹션을 삭제하거나 주석 처리합니다.
loadBalancer.manualLB.ingressHTTPNodePort
loadBalancer.kind
= ManualLB
인 경우 필수
변경 불가
정수
자동 입력: 30243
사용자 클러스터의 인그레스 프록시는 LoadBalancer
유형의 Kubernetes 서비스에서 노출됩니다.
서비스에는 HTTP용 ServicePort가 있습니다. HTTP ServicePort에 대해 nodePort
값을 선택해야 합니다.
이 필드를 nodePort
값으로 설정합니다.
예를 들면 다음과 같습니다.
loadBalancer: manualLB: ingressHTTPNodePort: 32527
loadBalancer.manualLB.ingressHTTPSNodePort
loadBalancer.kind
= ManualLB
인 경우 필수
변경 불가
정수
자동 입력: 30879
사용자 클러스터의 인그레스 프록시는 LoadBalancer 유형의 서비스에서 노출됩니다. 서비스에 HTTPS용 ServicePort가 있습니다. HTTPS ServicePort에 대해 nodePort
값을 선택해야 합니다.
이 필드를 nodePort
값으로 설정합니다.
예를 들면 다음과 같습니다.
loadBalancer: manualLB: ingressHTTPSNodePort: 30139
loadBalancer.manualLB.controlPlaneNodePort
loadBalancer.kind
= ManualLB
이고 enableControlplaneV2
= false
인 경우 필수
변경 불가
정수
자동 입력: 30562
사용자 클러스터의 Kubernetes API 서버는 관리자 클러스터에서 실행되며 LoadBalancer
유형의 서비스에서 노출됩니다. 서비스의 nodePort
값을 선택해야 합니다.
이 필드를 nodePort
값으로 설정합니다.
예를 들면 다음과 같습니다.
loadBalancer: manualLB: controlPlaneNodePort: 30968
loadBalancer.manualLB.konnectivityServerNodePort
loadBalancer.kind
= ManualLB
이고 enableControlplaneV2
= false
인 경우 필수
변경 불가
정수
자동 입력: 30563
kubeception을 사용하는 사용자 클러스터의 Kubernetes API 서버는 관리자 클러스터에서 실행되며 LoadBalancer
유형의 서비스에서 노출됩니다. Konnectivity 서버는 다른 nodePort
값으로 이 서비스를 재사용합니다. Konnectivity 서버에 nodePort
값을 선택해야 합니다.
이 필드를 Konnectivity 서버의 nodePort
값으로 설정합니다.
예를 들면 다음과 같습니다.
loadBalancer: manualLB: konnectivityServerNodePort: 30969
loadBalancer.f5BigIP
loadbalancer.kind
를 "f5BigIP"
로 설정한 경우 이 섹션을 입력합니다. 그렇지 않으면 이 섹션을 삭제하거나 주석 처리합니다.
새로운 기능 및 고급 기능을 사용 설정하려면 F5 BIG-IP 부하 분산기에 수동 부하 분산을 구성하는 것이 좋습니다. 수동 부하 분산을 사용 설정하려면 loadbalancer.kind
를 "ManualLB"
로 설정하고 loadBalancer.manualLB
섹션을 입력합니다. 자세한 내용은 수동 부하 분산 모드 사용 설정을 참조하세요.
loadBalancer.f5BigIP.address
loadBalancer.kind
= "f5BigIP"
인 경우 필수
문자열
F5 BIG-IP 부하 분산기의 주소입니다.
예를 들면 다음과 같습니다.
loadBalancer: f5BigIP: address: "203.0.113.2"
loadBalancer.f5BigIP.credentials.fileRef.path
loadBalancer.kind
= "f5BigIP"
인 경우 필수
문자열
Google Distributed Cloud에서 F5 BIG-IP 부하 분산기에 연결하는 데 사용할 수 있는 계정의 사용자 이름과 비밀번호가 포함된 사용자 인증 정보 파일의 경로입니다.
사용자 계정에는 부하 분산기를 설정하고 관리할 수 있는 충분한 권한이 있는 사용자 역할이 있어야 합니다. 관리자 역할이나 리소스 관리자 역할이면 됩니다.
F5 BIG-IP 사용자 인증 정보를 업데이트하는 방법은 클러스터 사용자 인증 정보 업데이트를 참조하세요.
예를 들면 다음과 같습니다.
loadBalancer: f5BigIP: credentials: fileRef: path: ""my-config-folder/user-creds.yaml"
loadBalancer.f5BigIP.credentials.fileRef.entry
loadBalancer.kind
= "f5BigIP"
인 경우 필수
문자열
F5 BIG-IP 계정의 사용자 이름 및 비밀번호가 포함된 사용자 인증 정보 구성 파일에 있는 사용자 인증 정보 블록의 이름입니다.
예를 들면 다음과 같습니다.
loadBalancer: f5BigIP: credentials: fileRef: entry: "f5-creds"
loadBalancer.f5BigIP.partition
loadBalancer.kind
= "f5BigIP"
인 경우 필수
문자열
사용자 클러스터용으로 만든 BIG-IP 파티션의 이름입니다.
예를 들면 다음과 같습니다.
loadBalancer: f5BigIP: partition: "my-f5-user-partition"
loadBalancer.f5BigIP.snatPoolName
loadBalancer.kind
= "f5BigIP"
이고 SNAT를 사용하는 경우 필수
문자열
SNAT 풀 이름입니다.
예를 들면 다음과 같습니다.
loadBalancer: f5BigIP: snatPoolName: "my-snat-pool"
loadBalancer.seesaw
loadbalancer.kind
를 "Seesaw"
로 설정한 경우 이 섹션을 입력합니다. 그렇지 않으면 이 섹션을 삭제하거나 주석 처리합니다.
SeeSaw 부하 분산기에서는 다음과 같은 제한사항이 있습니다.
- 고가용성 관리자 클러스터가 이 사용자 클러스터를 관리하는 경우 이 사용자 클러스터가 Seesaw 부하 분산기를 사용할 수 없습니다.
- Controlplane V2가 사용 설정된 사용자 클러스터는 Seesaw 부하 분산기를 사용할 수 없습니다.
이러한 기능을 사용하려면 MetalLB 부하 분산기를 구성하는 것이 좋습니다. MetalLB 부하 분산기를 사용 설정하려면 loadbalancer.kind
를 "MetalLB"
로 설정하고 loadBalancer.metalLB
섹션을 입력합니다. 자세한 내용은 MetalLB를 사용한 번들 부하 분산을 참조하세요.
현재 SeeSaw 부하 분산기를 사용하는 경우 MetalLB로 마이그레이션하는 것이 좋습니다.
loadBalancer.seesaw.ipBlockFilePath
loadBalancer.kind
= Seesaw
인 경우 필수
변경 불가
문자열
Seesaw VM의 IP 블록 파일 경로입니다.
예를 들면 다음과 같습니다.
loadBalancer: seesaw: ipBlockFilePath: "config-folder/user-seesaw-ipblock.yaml"
loadBalancer.seesaw.vrid
loadBalancer.kind
= Seesaw
인 경우 필수
변경 불가
정수
가능한 값: 1~255
자동 입력: 0
Seesaw VM의 가상 라우터 식별자입니다. 선택한 정수인 이 식별자는 VLAN 내에서 고유해야 합니다.
예를 들면 다음과 같습니다.
loadBalancer: seesaw: vrid: 125
loadBalancer.seesaw.masterIP
loadBalancer.kind
= Seesaw
인 경우 필수
변경 불가
문자열
마스터 Seesaw VM에 구성된 가상 IP 주소입니다.
예를 들면 다음과 같습니다.
loadBalancer: seesaw: masterIP: 172.16.20.21
loadBalancer.seesaw.cpus
loadBalancer.kind
= Seesaw
인 경우 필수
변경 가능
정수
자동 입력: 4
각 Seesaw VM의 CPU 수입니다.
예를 들면 다음과 같습니다.
loadBalancer: seesaw: cpus: 8
loadBalancer.seesaw.memoryMB
loadBalancer.kind
= Seesaw
인 경우 필수
변경 가능
정수
자동 입력: 3072
각 Seesaw VM의 메모리 용량(MiB)입니다.
예를 들면 다음과 같습니다.
loadBalancer: seesaw: memoryMB: 8192
참고: 이 필드에서는 메모리를 MB가 아닌 MiB로 지정합니다. 1MiB는 2^20 = 1,048,576바이트입니다. 1MB는 10^6 = 1,000,000바이트입니다.
loadBalancer.seesaw.vCenter.networkName
변경 불가
문자열
기본값: 클러스터 노드와 동일
Seesaw VM이 포함된 vCenter 네트워크의 이름입니다.
예:
loadBalancer: seesaw: vCenter: networkName: "my-seesaw-network"
loadBalancer.seesaw.enableHA
변경 불가
loadBalancer.kind
= Seesaw
인 경우 관련 있음
불리언
자동 입력: false
기본값: false
고가용성(HA) Seesaw 부하 분산기를 만들려면 true
로 설정합니다. 그렇지 않으면 false
로 설정합니다. HA Seesaw 부하 분산기는VM의 (마스터, 백업) 쌍을 사용합니다.
예:
loadBalancer: seesaw: enableHA: true
loadBalancer.seesaw.disableVRRPMAC
변경 불가
loadBalancer.kind
= Seesaw
인 경우 관련 있음
불리언
자동 입력: true
기본값: true
이를 true
로 설정하면 Seesaw 부하 분산기는 장애 조치용 MAC 학습을 사용하지 않습니다. 대신 Gratuitous ARP를 사용합니다.
이를 false
로 설정하면 Seesaw 부하 분산기가 MAC 학습을 사용합니다. 이를 true
로 설정하는 것이 좋습니다. vSphere 7 이상을 사용하고 고가용성 Seesaw 부하 분산기가 있는 경우 true
로 설정해야 합니다.
예를 들면 다음과 같습니다.
loadBalancer: seesaw: disableVRRPMAC: true
loadBalancer.metalLB
loadbalancer.kind
를 "MetalLB"
로 설정한 경우 이 섹션을 입력합니다. 그렇지 않으면 이 섹션을 삭제하거나 주석 처리합니다.
자세한 내용은 MetalLB를 사용한 번들 부하 분산을 참조하세요.
loadBalancer.metalLB.addressPools
loadBalancer.kind
= 'MetalLB`인 경우 필수
변경 가능
객체의 배열이며, 각 객체에는 MetalLB 부하 분산기에서 사용할 주소 풀에 대한 정보가 포함됩니다.
loadBalancer.metalLB.addressPools[i].name
loadBalancer.kind
= MetalLB
인 경우 필수
변경 가능
문자열
주소 풀에 대하여 사용자가 선택한 이름입니다.
예를 들면 다음과 같습니다.
loadBalancer: metalLB: addressPools: - name: "my-address-pool-1"
loadBalancer.metalLB.addressPools[i].addresses
loadBalancer.kind
= MetalLB
인 경우 필수
변경 가능
각기 주소 범위에 해당하는 문자열 배열입니다. 각 범위는 CIDR 형식 또는 하이픈으로 묶인 범위 형식이어야 합니다.
예:
loadBalancer: metalLB: addressPools: - name: "my-address-pool-1" addresses: - "192.0.2.0/26" - "192.0.2.64-192.0.2.72"
loadBalancer.metalLB.addressPools[i].avoidBuggyIPs
loadBalancer.kind
= MetalLB
인 경우 관련 있음
변경 가능
불리언
자동 입력: false
기본값: false
이 값을 true
로 설정하면 MetalLB 컨트롤러는 .0 또는 .255로 끝나는 IP 주소를 서비스에 할당되지 않습니다. 이렇게 하면 버그가 있는 소비자 기기가 특수한 IP 주소로 전송된 트래픽을 실수로 차단하는 문제를 방지할 수 있습니다.
예:
loadBalancer: metalLB: addressPools: - name: "my-address-pool-1" - "192.0.2.0/26" - "192.0.2.64-192.0.2.72" avoidBuggyIPs: true
loadBalancer.metalLB.addressPools[i].manualAssign
loadBalancer.kind
= MetalLB
인 경우 관련 있음
변경 가능
불리언
자동 입력: false
기본값: false
MetalLB 컨트롤러가 이 풀의 IP 주소를 서비스에 자동으로 할당하지 않도록 하려면 true
로 설정합니다. 그러면 개발자는 LoadBalancer
유형의 서비스를 만들고 풀에서 주소 중 하나를 수동으로 지정할 수 있습니다.
그렇지 않으면 false
로 설정합니다.
예:
loadBalancer: metalLB: addressPools: - name: "my-address-pool-1" manualAssign: true
enableDataplaneV2
1.30 이상
변경 불가
불리언
자동 입력: true
기본값: true
버전 1.30 이상에서는 새 사용자 클러스터에 Dataplane V2가 필요하며 true
로 설정해야 합니다. Controlplane V2를 사용하려면 Dataplane V2가 필요합니다.
Dataplane V2의 이점은 다음과 같습니다.
Dataplane V2는 이전 CNI 옵션인 Calico에 비해 더 고급이며 기능이 우수한 컨테이너 네트워크 인터페이스(CNI)를 제공합니다. Calico는 유지보수 모드이므로 중요한 버그 수정 및 보안 업데이트만 수신하고 새로운 기능 개발은 되지 않습니다. 반면 Dataplane V2는 적극적으로 개발 및 개선되어 최신 네트워킹 혁신과 기능을 사용할 수 있습니다.
Dataplane V2는 GKE 및 기타 Google Distributed Cloud 제품에 권장되는 CNI입니다.
1.29 이하
변경 불가
불리언
자동 입력: true
기본값: false
Dataplane V2를 사용 설정하거나 Controlplane V2를 사용하려면 이를 true
로 설정합니다. 그렇지 않으면 false
로 설정합니다.
Dataplane V2를 사용 설정하는 것이 좋습니다.
예:
enableDataplaneV2: true
문제 해결 단계는 Google Distributed Cloud NFS 및 DataPlane v2 문제 해결을 참고하세요.
dataplaneV2.forwardMode
변경 불가
문자열
가능한 값: 'snat', 'dsr'
자동 입력: 'snat'
기본값: 'snat'
Dataplane V2가 사용 설정된 클러스터의 전달 모드입니다.
소스 네트워크 주소 변환(SNAT) 모드를 사용하면 패킷이 부하 분산기 노드에서 백엔드 포드로 전달될 때 SNAT 변환됩니다. 포드는 원래 소스 IP 주소를 볼 수 없으며 반환 패킷은 부하 분산기 노드를 통과해야 합니다.
직접 서버 반환(DSR) 모드를 사용하면 패킷이 부하 분산기 노드에서 백엔드 포드로 전달될 때 원래 소스 IP 주소를 유지합니다. 포드는 원래의 소스 IP 주소를 볼 수 있으며 반환 패킷은 부하 분산기 노드를 거치지 않고 클라이언트에 직접 전달됩니다.
예를 들면 다음과 같습니다.
dataplaneV2: forwardMode: "dsr"
참고: 이 필드를 업데이트하면 클러스터 버전에 따라 알려진 문제가 발생할 수 있습니다. 클러스터 버전이 영향을 받는 경우 언급된 해결 방법을 적용하세요.
multipleNetworkInterfaces
변경 불가
불리언
자동 입력: false
기본값: false
포드에 대한 다중 네트워크 인터페이스를 사용 설정하려면 true
로 설정합니다. 그렇지 않으면 false
로 설정합니다.
자세한 내용은 포드에 대한 다중 네트워크 인터페이스 구성을 참조하세요.
예:
multipleNetworkInterfaces: true
advancedNetworking
변경 불가
불리언
자동 입력: false
기본값: false
이그레스 NAT 게이트웨이를 만들려면 true
로 설정합니다. 그렇지 않으면 false
로 설정하세요.
이 필드를 true
로 설정하면 enableDataplaneV2
도 true
로 설정해야 합니다.
예를 들면 다음과 같습니다.
advancedNetworking: true
disableBundledIngress
클러스터의 번들 인그레스를 사용 중지하려면 true
로 설정합니다. 그렇지 않으면 false
로 설정합니다.
불리언
변경 가능
자동 입력: false
기본값: false
예:
disableBundledIngress: true
storage.vSphereCSIDisabled
vSphere CSI 구성요소 배포를 중지하려면 true
로 설정하세요. 그렇지 않으면 false
로 설정합니다.
변경 가능
불리언
자동 입력: false
기본값: false
예:
storage: vSphereCSIDisabled: false
masterNode
이 섹션에는 이 사용자 클러스터의 컨트롤 플레인 노드 역할을 하는 노드에 대한 정보가 포함되어 있습니다.
masterNode.cpus
변경 가능
정수
자동 입력: 4
기본값: 4
이 사용자 클러스터의 컨트롤 플레인 역할을 하는 각 노드의 CPU 수입니다.
예:
masterNode: cpus: 8
masterNode.memoryMB
변경 가능
정수
자동 입력: 8,192
기본값: 8,192
이 사용자 클러스터의 컨트롤 플레인 역할을 하는 각 노드의 메모리 크기(메비바이트)입니다. 4의 배수여야 합니다.
예를 들면 다음과 같습니다.
masterNode: memoryMB: 8192
참고: 이 필드에서는 메모리를 MB가 아닌 MiB로 지정합니다. 1MiB는 2^20 = 1,048,576바이트입니다. 1MB는 10^6 = 1,000,000바이트입니다.
masterNode.replicas
변경 불가
정수
가능한 값: 1 또는 3
자동 입력: 1
기본값: 1
이 사용자 클러스터의 컨트롤 플레인 노드 수입니다. 클러스터를 만든 후에는 이 수를 변경할 수 없습니다. 나중에 복제본 수를 업데이트하려면 사용자 클러스터를 다시 만들어야 합니다.
예:
masterNode: replicas: 3
masterNode.autoResize.enabled
변경 가능
불리언
자동 입력: false
기본값: false
사용자 클러스터에 대해 컨트롤 플레인 노드의 자동 크기 조절을 사용 설정하려면 이를 true
로 설정합니다. 그렇지 않으면 false
로 설정합니다.
자세한 내용은 사용자 클러스터의 컨트롤 플레인 노드에 대해 노드 크기 조절 사용 설정을 참조하세요.
예를 들면 다음과 같습니다.
masterNode: autoResize: enabled: true
masterNode.vsphere.datastore
선택사항
변경 불가
문자열
기본값: vCenter.datastore
값
이 사용자 클러스터의 컨트롤 플레인 노드가 생성될 Datastore입니다.
지정하는 값은 경로가 아닌 이름이어야 합니다. 값에 폴더를 포함하지 마세요.
예를 들면 다음과 같습니다.
masterNode: vSphere: datastore: "control-plane-datastore"
이 필드의 값을 지정할 경우 masterNode.vsphere.storagePolicyName
값을 지정하지 마세요. masterNode.vsphere.datastore
필드는 Datastore를 스토리지 정책 기반 관리(SPBM)로 마이그레이션할 때 필드를 빈 문자열로 설정하는 경우를 제외하고 변경할 수 없습니다.
masterNode.vsphere.storagePolicyName
선택사항
변경 불가
문자열
기본값: vCenter.storagePolicyName
값
컨트롤 플레인 노드에 대한 VM 스토리지 정책의 이름입니다.
자세한 내용은 스토리지 정책 구성을 참조하세요.
예를 들면 다음과 같습니다.
masterNode: vSphere: storagePolicyName: "control-plane-storage-policy"
이 필드의 값을 지정할 경우 masterNode.vsphere.datastore
값을 지정하지 마세요.
nodePools
필수
변경 가능
노드 풀을 각각 설명하는 객체 배열
자세한 내용은 노드 풀 만들기 및 관리를 참조하세요.
nodePools[i].name
필수
변경 불가
문자열
노드 풀의 이름입니다. 이름은 다음 조건을 충족해야 합니다.
- 40자(영문 기준) 이하여야 합니다.
- 소문자 영숫자 문자 또는 하이픈(
-
)만 포함해야 합니다. - 알파벳 문자로 시작해야 합니다.
- 영숫자 문자로 끝나야 합니다.
예를 들면 다음과 같습니다.
nodePools: - name: "my-node-pool-1"
nodePools[i].gkeOnPremVersion
사용자 클러스터를 업그레이드할 때 선택한 노드 풀이 이전 버전으로 유지되도록 지정할 수 있습니다.
이 노드 풀을 이전 버전으로 유지하려면 이전 버전으로 설정합니다. 그렇지 않으면 이 필드를 삭제하거나 빈 문자열로 설정합니다. 자세한 내용은 사용자 클러스터 업그레이드를 참고하세요.
변경 가능
문자열
기본값: gkeOnPremVersion
클러스터
예:
nodePools: - name: "my-node-pool" gkeOnPremVersion: "1.13.0-gke.16"
nodePools[i].cpus
필수
변경 가능
정수
자동 입력: 4
풀의 각 노드에 대한 vCPU 수입니다.
예를 들면 다음과 같습니다.
nodePools" - name: "my-node-pool" cpus: 8
nodePools[i].memoryMB
필수
변경 가능
정수
자동 입력: 8192
풀의 각 노드에 대한 메모리 용량(MiB)입니다. 4의 배수여야 합니다.
예를 들면 다음과 같습니다.
nodePools" - name: "my-node-pool" memoryMB: 8192
참고: 이 필드에서는 메모리를 MB가 아닌 MiB로 지정합니다. 1MiB는 2^20 = 1,048,576바이트입니다. 1MB는 10^6 = 1,000,000바이트입니다.
nodePools[i].replicas
필수
변경 가능
정수
자동 입력: 3
가능한 값: 클러스터의 모든 노드 풀에서 taint 해제된 총 노드 수가 3개 이상이어야 합니다.
풀의 노드 수입니다.
예:
nodePools: - name: "my-node-pool" replicas: 5
nodePools[i].bootDiskSizeGB
변경 가능
정수
자동 입력: 40
기본값: 40
풀에 있는 각 노드의 부팅 디스크 크기(GB)입니다.
예:
nodePools - name: "my-node-pool" bootDiskSizeGB: 40
nodePools[i].osImageType
변경 가능
문자열
가능한 값: 'ubuntu_containerd', 'cos', 'ubuntu_cgv2', 'cos_cgv2', 'windows'
자동 입력: 'ubuntu_cgv2'
기본값: 'ubuntu_containerd'
노드 풀의 VM에서 실행할 OS 이미지 유형입니다.
예:
nodePools - name: "my-node-pool" osImageType: "ubuntu_cgv2"
nodePools[i].osImage
nodePools[i].osImageType
= windows
인 경우 필수
변경 가능
문자열
Windows VM 템플릿의 이름입니다. 템플릿은 en-US 언어/리전 태그가 있는 Windows Server 2019 ISO를 기반으로 해야 합니다.
자세한 내용은 Windows Server OS 노드 풀 사용자 가이드를 참조하세요.
nodePools[i].labels
변경 가능
매핑
풀의 각 Kubernetes 노드 객체에 적용할 라벨입니다.
예를 들면 다음과 같습니다.
nodePools: - name: "my-node-pool" labels: environment: "production" tier: "cache"
kubelet은 보안상의 이유로 특정 네임스페이스에서 자체적으로 라벨을 적용할 수 없습니다.
예약된 노드 라벨 네임스페이스는 kubernetes.io
, k8s.io
, googleapis.com
입니다.
nodePools[i].taints
변경 가능
객체의 배열로, 각 객체는 풀의 각 노드에 적용되는 Kubernetes taint를 설명합니다. taint는 특정 effect
와 연결된 키-값 쌍입니다. taint는 포드 예약에 대한 톨러레이션(toleration)과 함께 사용됩니다. effect
에 NoSchedule
, PreferNoSchedule
, NoExecute
중 하나를 지정합니다.
예를 들면 다음과 같습니다.
nodePools: - name: "my-node-pool" taints: - key: "staging" value: "true" effect: "NoSchedule"
nodePools[i].vsphere.datastore
변경 가능
문자열
기본값: vCenter.datastore
값
노드가 생성될 vCenter Datastore의 이름입니다.
예를 들면 다음과 같습니다.
nodePools: - name: "my-node-pool" vsphere: datastore: "my-datastore"
이 필드의 값을 지정할 경우 nodePools[i].vsphere.storagePolicyName
값을 지정하지 마세요.
nodePools[i].vsphere.storagePolicyName
변경 가능
문자열
기본값: vCenter.storagePolicyName
값
풀에 있는 노드에 대한 VM 스토리지 정책의 이름입니다.
자세한 내용은 스토리지 정책 구성을 참조하세요.
예를 들면 다음과 같습니다.
nodePools: - name: "my-node-pool" vsphere: storagePolicyName: "my-storage-policy"
이 필드의 값을 지정할 경우 nodePools[i].vsphere.datastore
값을 지정하지 마세요.
nodePools[i].vsphere.hostgroups
VM-호스트 어피니티를 사용하도록 클러스터를 구성하려면 이 섹션을 작성합니다.
변경 가능
문자열 배열로, 각 문자열은 호스트 DRS 그룹의 이름입니다.
배열에는 요소가 하나만 포함될 수 있습니다.
예:
nodePools: - name: "my-node-pool" vsphere: hostgroups: - "my-hostgroup"
nodePools[i].vsphere.tags
변경 가능
객체의 배열로, 각 객체는 노드 풀의 VM에 배치되는 vSphere 태그를 설명합니다.
각 태그에는 카테고리와 이름이 있습니다.
예를 들면 다음과 같습니다.
nodePools: - name: "my-node-pool" vsphere: tags: - category: "purpose" name: "testing"
노드 풀의 모든 VM에 태그를 연결하려면 vCenter 사용자 계정에 다음과 같은 vSphere 태그 권한이 있어야 합니다.
- vSphere Tagging.vSphere 태그 할당 또는 할당 해제
- vSphere Tagging.객체에 vSphere 태그 할당 또는 할당 해제 (vSphere 7)
nodePools[i].autoscaling
변경 가능
노드 풀에 대해 자동 확장을 사용 설정하려면 이 섹션을 작성합니다. 그렇지 않으면 이 섹션을 삭제하거나 주석 처리합니다.
nodePools[i].autoscaling.minReplicas
변경 가능
정수
가능한 값: 1 이상
자동 입력: 0
자동 확장 처리가 풀에 설정할 수 있는 최소 노드 수입니다.
예:
nodePools: - name: "my-node-pool" autoscaling: minReplicas: 5
nodePools[i].autoscaling.maxReplicas
변경 가능
정수
자동 입력: 0
자동 확장 처리가 풀에 설정할 수 있는 최대 노드 수입니다.
예:
nodePools: - name: "my-node-pool" autoscaling: maxReplicas: 10
nodePools[i].enableLoadBalancer
loadBalancer.kind
= "MetalLB"
인 경우 관련 있음
변경 가능
불리언
자동 입력: true
기본값: false
풀의 노드에서 MetalLB 스피커를 실행하려면 true
로 설정합니다. 그렇지 않으면 false
로 설정합니다.
자세한 내용은 MetalLB를 사용한 번들 부하 분산을 참조하세요.
예:
nodePools: - name: "my-node-pool" enableLoadBalancer: true
nodePools[i].updateStrategy.rollingUpdate.maxSurge
미리보기
변경 가능
정수
기본값: 1
업데이트 또는 업그레이드 중에 동시에 업데이트할 수 있는 노드 풀의 최대 머신 수입니다.
nodePools: - name: "my-node-pool" updateStrategy: rollingUpdate: maxSurge: 3
antiAffinityGroups.enabled
변경 가능
불리언
자동 입력: true
기본값: true
이 필드가 true
이면 Google Distributed Cloud에서 사용자 클러스터 노드의 VMware Distributed Resource Scheduler(DRS) 안티-어피니티 규칙을 만들어 데이터 센터에 있는 물리적 ESXi 호스트 최소 3개 이상에 분산됩니다.
이 기능을 사용하려면 vSphere 환경이 다음 조건을 충족해야 합니다.
VMware DRS가 사용 설정되어 있습니다. VMware DRS에는 vSphere Enterprise Plus 라이선스 버전이 필요합니다.
vSphere 사용자 계정에
Host.Inventory.Modify cluster
권한이 있습니다.사용 가능한 ESXi 호스트가 최소 4개 이상 있습니다.
규칙에 따르면 클러스터 노드가 ESXi 호스트 3개에 분산되어야 하지만 사용 가능한 ESXi 호스트가 최소 4개 이상 있는 것이 좋습니다.
vSphere Standard 라이선스가 있으면 VMware DRS를 사용 설정할 수 없습니다.
DRS를 사용 설정하지 않았거나 vSphere VM을 예약할 수 있는 호스트가 4개 이상이 아니라면 antiAffinityGroups.enabled
를 false
로 설정합니다.
예:
antiAffinityGroups: enabled: false
enableVMTracking
미리보기
변경 불가
자동 입력: false
vSphere 태그로 VM 추적을 사용 설정하려면 이 값을 true
로 설정합니다. 그렇지 않으면 false
로 설정합니다.
자세한 내용은 VM 추적 사용 설정을 참조하세요.
예:
enableVMTracking: true
nodePoolUpdatePolicy.maximumConcurrentNodePoolUpdate
변경 가능
정수
가능한 값: 0 또는 1
자동 입력: 0
기본값: TODO: REVIEWERS: DOES THIS HAVE A DEFAULT VALUE?
한 번에 업데이트할 노드 풀 수입니다. 값이 1
이면 노드 풀을 한 번에 하나씩 업데이트할 수 있습니다. 값이 0
이면 한 번에 업데이트할 수 있는 노드 풀 수가 제한되지 않습니다.
예를 들면 다음과 같습니다.
nodePoolUpdatePolicy: maximumConcurrentNodePoolUpdate: 1
nodePoolUpdatePolicy.updateStrategy.rollingUpdate.maxSurge
미리보기
변경 가능
정수
기본값: 1
업데이트 또는 업그레이드 중에 동시에 업데이트할 수 있는 노드 풀의 최대 머신 수입니다. 자체 업데이트 전략을 지정하지 않는 모든 노드 풀에 적용됩니다.
nodePools: - name: "my-node-pool" updateStrategy: rollingUpdate: maxSurge: 3
authentication
이 섹션에서는 클러스터 사용자가 인증 및 승인되는 방식에 대한 정보를 제공합니다.
authentication.oidc
이 섹션을 사용하지 마세요. 대신 클러스터를 만든 후 OIDC로 Anthos Identity Service용 클러스터 구성에 설명된 대로 ClientConfig 커스텀 리소스를 수정합니다.
authentication.sni
클러스터의 Kubernetes API 서버에 추가 서빙 인증서를 제공하려면 이 섹션을 작성합니다. 그렇지 않으면 이 섹션을 삭제하거나 주석 처리합니다.
authentication.sni.certPath
문자열
Kubernetes API 서버의 사용 중인 인증서 경로입니다.
예를 들면 다음과 같습니다.
authentication: sni: certPath: "my-cert-folder/example.com.crt"
authentication.sni.keyPath
선택사항
문자열
인증서의 비공개 키 파일 경로입니다.
예를 들면 다음과 같습니다.
authentication: sni: keyPath: "my-cert-folder/example.com.key"
gkeConnect
필수
변경 불가
이 섹션에서는 Google Cloud Fleet에 클러스터를 등록하는 데 사용할 Google Cloud 프로젝트 및 서비스 계정에 대한 정보가 포함되어 있습니다.
gkeConnect.projectID
필수
변경 불가
문자열
Fleet 호스트 프로젝트의 ID입니다.
새 클러스터의 경우 이 프로젝트 ID는 stackdriver.projectID
및 cloudAuditLogging.projectID
에 설정된 ID와 동일해야 합니다. 프로젝트 ID가 동일하지 않으면 클러스터 생성에 실패합니다. 이 요구사항은 기존 클러스터에 적용되지 않습니다.
예:
gkeConnect: projectID: "my-fleet-host-project"
gkeConnect.location
변경 불가
문자열
기본값: global
각 클러스터의 Fleet 멤버십은 Fleet 서비스(gkehub.googleapis.com
) 및 Connect 서비스(gkeconnect.googleapis.com
)에서 관리됩니다. 서비스 위치는 전역 또는 리전일 수 있습니다. 1.28 이상에서는 원하는 경우 Fleet 및 Connect 서비스가 실행되는 Google Cloud 리전을 지정할 수 있습니다. 지정하지 않으면 서비스의 전역 인스턴스가 사용됩니다. 다음에 유의하세요.
1.28 이전에 생성된 사용자 클러스터는 전역 Fleet 및 Connect 서비스에서 관리됩니다.
GKE On-Prem API 클라이언트(Google Cloud 콘솔, Google Cloud CLI 또는 Terraform)를 사용하여 생성된 새 클러스터는 GKE On-Prem API에 지정된 리전과 동일한 리전을 사용합니다.
새 클러스터에서 이 필드를 포함하는 경우 지정하는 리전이
cloudAuditLogging.clusterLocation
,stackdriver.clusterLocation
,gkeOnPremAPI.location
에 구성된 리전과 동일해야 합니다. 리전이 동일하지 않으면 클러스터 생성에 실패합니다.
예를 들면 다음과 같습니다.
gkeConnect: location: "us-central1"
gkeConnect.registerServiceAccountKeyPath
필수
변경 가능
문자열
연결-등록 서비스 계정의 JSON 키 파일 경로입니다.
이 필드의 값을 업데이트하려면 gkectl update cluster
를 사용합니다.
연결-등록 서비스 계정 키 변경에 대한 자세한 내용은 서비스 계정 키 순환을 참조하세요.
예:
gkeConnect: registerServiceAccountKeyPath: "my-key-folder/connect-register-key.json"
gkeConnect.registerServiceAccountKey.secretRef.version
변경 가능
문자열
가능한 값: 정수 문자열 또는 'latest'
기본값: 'latest'
connect-register 서비스 계정의 JSON 키가 포함된 관리자 클러스터의 준비된 보안 비밀 버전입니다.
예:
gkeConnect: registerServiceAccountKey: secretRef: version: "1"
gkeOnPremAPI
1.16 이상에서 GKE On-Prem API가 Google Cloud 프로젝트에 사용 설정된 경우 프로젝트의 모든 클러스터가 stackdriver.clusterLocation
에 구성된 리전의 GKE On-Prem API에 자동으로 등록됩니다.
GKE On-Prem API에서 프로젝트의 모든 클러스터를 등록하려면 프로젝트의 GKE On-Prem API를 활성화하고 사용하기 위해 시작하기 전에의 단계를 수행해야 합니다.
GKE On-Prem API에서 클러스터를 등록하지 않으려면 이 섹션을 포함하고
gkeOnPremAPI.enabled
를false
로 설정합니다. 프로젝트에 클러스터를 등록하지 않으려면 프로젝트에서gkeonprem.googleapis.com
(GKE On-Prem API의 서비스 이름)을 중지합니다. 자세한 내용은 서비스 사용 중지를 참조하세요.
GKE On-Prem API에 사용자 클러스터를 등록하면 표준 도구(Google Cloud 콘솔, Google Cloud CLI, Terraform)를 사용하여 클러스터의 수명 주기를 관리할 수 있습니다. 또한 클러스터를 등록하면 콘솔이나 gcloud CLI를 사용하여 클러스터 세부정보를 볼 수 있습니다. 예를 들어 gcloud
명령어를 실행하여 사용자 클러스터에 대한 정보를 가져올 수 있습니다.
이 섹션을 추가하고 클러스터를 만들거나 업데이트한 후에 섹션을 삭제하고 클러스터를 업데이트하면 업데이트가 실패합니다.
gkeOnPremAPI.enabled
변경 가능
불리언
기본값: true
프로젝트에 GKE On-Prem API가 사용 설정된 경우 기본적으로 클러스터가 GKE On-Prem API에 등록됩니다. 클러스터를 등록하지 않으려면 false
로 설정합니다.
GKE On-Prem API에 클러스터를 등록한 후 등록을 해제해야 하는 경우 다음과 같이 변경하고 클러스터를 업데이트합니다.
gkeOnPremAPI: enabled: false
gkeOnPremAPI.location
변경 불가
문자열
기본값: stackdriver.clusterLocation
GKE On-Prem API가 실행되고 클러스터 메타데이터를 저장하는 Google Cloud 리전입니다. 지원되는 리전 중 하나를 선택합니다.
gkeConnect.location
, stackdriver.clusterLocation
, cloudAuditLogging.clusterLocation
에 구성된 것과 동일한 리전을 사용해야 합니다. gkeOnPremAPI.enabled
가 false
이면 이 필드를 포함하지 마세요.
stackdriver
기본적으로 필수
변경 가능
클러스터에 Cloud Logging 및 Cloud Monitoring을 사용 설정하려면 이 섹션을 입력합니다. 그렇지 않으면 이 섹션을 삭제하거나 주석 처리합니다.
이 섹션은 기본적으로 필요합니다. 즉, 이 섹션을 포함하지 않으면 gkectl create cluster
을 실행할 때 --skip-validation-stackdriver
플래그를 포함해야 합니다.
이 섹션은 GKE On-Prem API 클라이언트를 사용하는 사용자 클러스터의 수명 주기를 관리하려는 경우 필요합니다.
stackdriver.projectID
Logging 및 Monitoring에 필수
변경 불가
문자열
Fleet 호스트 프로젝트의 ID입니다.
새 클러스터의 경우 이 프로젝트 ID는 gkeConnect.projectID
및 cloudAuditLogging.projectID
에 설정된 ID와 동일해야 합니다. 프로젝트 ID가 동일하지 않으면 클러스터 생성에 실패합니다. 이 요구사항은 기존 클러스터에 적용되지 않습니다.
필요한 경우 이 프로젝트의 로그 라우터를 구성하여 로그를 다른 프로젝트의 로그 버킷으로 라우팅할 수 있습니다. 로그 라우터 구성 방법에 대한 자세한 내용은 지원되는 대상을 참조하세요.
예를 들면 다음과 같습니다.
stackdriver: projectID: "my-fleet-host-project"
stackdriver.clusterLocation
Logging 및 Monitoring에 필수
변경 불가
문자열
자동 입력: 'us-central1'
로그를 저장할 Google Cloud 리전입니다. 온프레미스 데이터 센터와 가까운 리전을 선택하는 것이 좋습니다.
새 클러스터의 경우 구성 파일에 gkeOnPremAPI
및 cloudAuditLogging
섹션을 포함하면 여기에서 설정한 리전은 gkeConnect.location
, gkeOnPremAPI.location
, cloudAuditLogging.clusterLocation
에서 설정한 리전과 동일해야 합니다. 리전이 동일하지 않으면 클러스터 생성에 실패합니다.
예:
stackdriver: clusterLocation: "us-central1"
stackdriver.enableVPC
변경 불가
불리언
자동 입력: false
클러스터 네트워크가 VPC로 제어되는 경우 이를 true
로 설정합니다.
이렇게 하면 모든 원격 분석이 Google의 제한된 IP 주소를 통해 이동합니다.
그렇지 않으면 false
로 설정합니다.
예를 들면 다음과 같습니다.
stackdriver: enableVPC: false
stackdriver.serviceAccountKeyPath
Logging 및 Monitoring에 필수
변경 가능
문자열
로깅 모니터링 서비스 계정의 JSON 키 파일 경로입니다.
이 필드의 값을 업데이트하려면 gkectl update cluster
를 사용합니다.
로깅-모니터링 서비스 계정 키 변경에 대한 자세한 내용은 서비스 계정 키 순환을 참조하세요.
예:
stackdriver: serviceAccountKeyPath: "my-key-folder/log-mon-key.json"
stackdriver.serviceAccountKey.secretRef.version
변경 가능
문자열
가능한 값: 정수 문자열 또는 'latest'
기본값: 'latest'
로깅 모니터링 서비스 계정의 JSON 키가 포함된 관리자 클러스터의 준비된 보안 비밀 버전입니다.
예:
stackdriver: serviceAccountKey: secretRef: version: "1"
stackdriver.disableVsphereResourceMetrics
변경 가능
불리언
자동 입력: false
기본값: false
vSphere에서 측정항목 수집을 사용 중지하려면 true
로 설정합니다.
그렇지 않으면 false
로 설정합니다.
예:
stackdriver: disableVsphereResourceMetrics: true
usageMetering
미리보기
변경 불가
클러스터에서 사용량 측정을 사용 설정하려면 이 섹션을 작성합니다. 그렇지 않으면 이 섹션을 삭제하거나 주석 처리합니다.
usageMetering.bigQueryProjectID
미리보기
사용량 측정에 필수
변경 불가
문자열
사용량 측정 데이터를 저장할 Google Cloud 프로젝트의 ID입니다.
예를 들면 다음과 같습니다.
usageMetering: bigQueryProjectID: "my-bq-project"
usageMetering.bigQueryDatasetID
미리보기
사용량 측정에 필수
변경 불가
문자열
사용량 측정 데이터를 저장할 BigQuery 데이터 세트의 ID입니다. 예를 들면 다음과 같습니다.
usageMetering: bigQueryDatasetID: "my-bq-dataset"
usageMetering.bigQueryServiceAccountKeyPath
미리보기
사용량 측정에 필수
변경 불가
문자열
BigQuery 서비스 계정의 JSON 키 파일 경로입니다.
이 필드의 값을 업데이트하려면 gkectl update cluster
를 사용합니다.
BigQuery 서비스 계정 키 변경에 대한 자세한 내용은 서비스 계정 키 순환을 참조하세요.
예:
usageMetering: bigQueryServiceAccountKeyPath: "my-key-folder/bq-key.json"
usageMetering.bigQueryServiceAccountKey.secretRef.version
변경 가능
문자열
가능한 값: 정수 문자열 또는 'latest'
기본값: 'latest'
BigQuery 서비스 계정의 JSON 키가 포함된 관리자 클러스터의 준비된 보안 비밀 버전입니다.
예를 들면 다음과 같습니다.
gkeConnect: bigQueryServiceAccountKey: secretRef: version: "1"
usageMetering.enableConsumptionMetering
미리보기
사용량 측정에 필수
변경 불가
불리언
자동 입력: false
소비 기반 측정을 사용 설정하려면 true
로 설정합니다.
그렇지 않으면 false로 설정합니다.
예를 들면 다음과 같습니다.
usageMetering: enableConsumptionMetering: true
cloudAuditLogging
클러스터의 Kubernetes API 서버의 감사 로그를 Cloud 감사 로그와 통합하려면 이 섹션을 입력합니다. 그렇지 않으면 이 섹션을 삭제하거나 주석 처리합니다.
cloudAuditLogging.projectID
Cloud 감사 로그에 필수
변경 불가
문자열
Fleet 호스트 프로젝트의 ID입니다.
새 클러스터의 경우 이 프로젝트 ID는 gkeConnect.projecID
및 stackdriver.projectID
에 설정된 ID와 동일해야 합니다. 프로젝트 ID가 동일하지 않으면 클러스터 생성에 실패합니다. 이 요구사항은 기존 클러스터에 적용되지 않습니다.
필요한 경우 이 프로젝트의 로그 라우터를 구성하여 로그를 다른 프로젝트의 로그 버킷으로 라우팅할 수 있습니다. 로그 라우터 구성 방법에 대한 자세한 내용은 지원되는 대상을 참조하세요.
예를 들면 다음과 같습니다.
cloudAuditLogging: projectID: "my-fleet-host-project"
cloudAuditLogging.clusterLocation
Cloud 감사 로그에 필수
변경 불가
문자열
감사 로그를 저장할 Google Cloud 리전입니다. 온프레미스 데이터 센터와 가까운 리전을 선택하는 것이 좋습니다
새 클러스터의 경우 구성 파일에 gkeOnPremAPI
및 stackdriver
섹션을 포함하면 여기에서 설정한 리전은 gkeConnect.location
, gkeOnPremAPI.location
, stackdriver.clusterLocation
에서 설정한 리전과 동일해야 합니다. 리전이 동일하지 않으면 클러스터 생성에 실패합니다.
예를 들면 다음과 같습니다.
cloudAuditLogging: clusterLocation: "us-central1"
cloudAuditLogging.serviceAccountKeyPath
Cloud 감사 로그에 필수
변경 가능
문자열
감사 로깅 서비스 계정의 JSON 키 파일 경로입니다.
이 필드의 값을 업데이트하려면 gkectl update cluster
를 사용합니다.
감사 로깅 서비스 계정 키 변경에 대한 자세한 내용은 서비스 계정 키 순환을 참조하세요.
예:
cloudAuditLogging: serviceAccountKeyPath: "my-key-folder/audit-log-key.json"
cloudAuditLogging.serviceAccountKey.secretRef.version
변경 가능
문자열
가능한 값: 정수 문자열 또는 'latest'
기본값: 'latest'
감사 로깅 서비스 계정의 JSON 키가 포함된 관리자 클러스터의 준비된 보안 비밀 버전입니다.
예를 들면 다음과 같습니다.
cloudAuditLogging: serviceAccountKey: secretRef: version: "1"
autoRepair.enabled
선택사항
변경 가능
불리언
자동 입력: true
노드 자동 복구를 사용 설정하려면 이 값을 true
로 설정합니다. 그렇지 않으면 false
로 설정합니다.
예를 들면 다음과 같습니다.
autoRepair: enabled: true
secretsEncryption
외부 KMS(키 관리 서비스) 또는 기타 종속 항목 없이 보안 비밀을 암호화하려면 이 섹션을 입력합니다. 그렇지 않으면 이 섹션을 삭제하거나 주석 처리합니다.
secretsEncryption.mode
보안 비밀 암호화에 필수
변경 불가
문자열
가능한 값: 'GeneratedKey'
자동 입력: 'GeneratedKey'
보안 비밀 암호화 모드입니다.
secretsEncryption: mode: "GeneratedKey"
secretsEncryption.generatedKey.keyVersion
보안 비밀 암호화에 필수
변경 가능
정수
자동 입력: 1
키 버전 번호에 사용할 정수입니다. 1
으로 시작하는 것이 좋습니다.
기존 클러스터의 이 필드를 업데이트하는 방법은 상시 보안 비밀 암호화를 참조하세요.
예:
secretsEncryption: generatedKey: keyVersion: 1
secretsEncryption.generatedKey.disabled
변경 가능
불리언
자동 입력: true
보안 비밀 암호화를 사용 중지하려면 이 값을 true
로 설정합니다. 그렇지 않으면 false
로 설정하세요.
기존 클러스터의 이 필드를 업데이트하는 방법은 상시 보안 비밀 암호화를 참조하세요.
예를 들면 다음과 같습니다.
secretsEncryption: generatedKey: disabled: false