버전 1.7. 이 버전은 Anthos 버전 지원 정책에 설명된 대로 지원되며 VMware용 Anthos 클러스터(GKE On-Prem)에 영향을 미치는 보안 취약점, 노출, 문제에 대한 최신 패치와 업데이트를 제공합니다. 자세한 내용은 출시 노트를 참조하세요. 이 버전은 최신 버전입니다.

사용자 클러스터 구성 파일

이 페이지에서는 VMware용 Anthos 클러스터(GKE On-Prem) 사용자 클러스터 구성 파일에 있는 필드를 설명합니다.

구성 파일 템플릿 생성

gkeadm을 사용하여 관리 워크스테이션을 만든 경우 gkeadm은 사용자 클러스터 구성 파일의 템플릿을 생성했습니다. gkeadm은 일부 필드를 작성했습니다.

gkeadm을 사용하여 관리 워크스테이션을 만들지 않은 경우 gkectl을 사용하여 사용자 클러스터 구성 파일의 템플릿을 생성할 수 있습니다.

사용자 클러스터 구성 파일의 템플릿을 생성하려면 다음 안내를 따르세요.

gkectl create-config cluster --config=OUTPUT_FILENAME

여기서 OUTPUT_FILENAME은 생성된 템플릿에 대한 경로입니다. 이 플래그를 생략하면 gkectl은 파일 이름을 user-cluster.yaml로 지정하고 현재 디렉터리에 넣습니다.

구성 파일 작성

구성 파일에 다음 섹션에 설명된 대로 필드 값을 입력합니다.

name

문자열. 사용자 클러스터의 이름입니다. 예를 들면 다음과 같습니다.

name: "my-user-cluster"

gkeOnPremVersion

문자열. 사용자 클러스터의 Anthos cluster on VMware 버전입니다. 예를 들면 다음과 같습니다.

gkeOnPremVersion: 1.6.0-gke.7

vCenter

vCenter 환경의 모든 측면을 관리자 클러스터에 지정한 것과 동일하게 하려면 이 섹션을 제거하거나 주석 처리합니다.

관리자 클러스터에 지정한 것과 vCenter 환경의 일부 측면을 다르게 하려면 이 섹션의 관련 필드를 입력합니다. vCenter 섹션에서 여기에 설정한 모든 필드는 관리자 클러스터 구성 파일의 해당 필드를 재정의합니다.

vCenter.resourcePool

문자열. 사용자 클러스터의 vCenter 리소스 풀 이름입니다. 기본이 아닌 리소스 풀을 사용하는 경우에는 vCenter 리소스 풀의 이름을 입력합니다. 예를 들면 다음과 같습니다.

vCenter:
  resourcePool: "MY-USER-POOL"

기본 리소스 풀을 사용하는 경우 다음 값을 제공합니다.

vCenter:
  resourcePool: "VCENTER_CLUSTER/Resources"

여기에서 VCENTER_CLUSTER는 vCenter 클러스터의 이름입니다.

독립형 호스트의 루트 리소스 풀 지정을 참조하세요.

vCenter.datastore

문자열. 사용자 클러스터의 vCenter Datastore의 이름입니다. 예를 들면 다음과 같습니다.

vCenter:
  datastore: "MY-USER-DATASTORE"

vCenter.caCertPath

문자열. GKE On-Prem과 같은 클라이언트가 vCenter Server로 요청을 전송할 때 서버는 인증서 또는 인증서 번들을 제공하여 클라이언트에 해당 ID를 입증해야 합니다. 인증서 또는 번들을 확인하기 위해 GKE On-Prem은 트러스트 체인에 루트 인증서가 있어야 합니다.

vCenter.caCertPath를 루트 인증서의 경로로 설정합니다. 예를 들면 다음과 같습니다.

vCenter:
  caCertPath: "/usr/local/google/home/me/certs/user-vcenter-ca-cert.pem"

VMware 설치에는 vCenter Server에 인증서를 발급하는 인증 기관(CA)이 포함됩니다. 신뢰 체인의 루트 인증서는 VMware에서 생성된 자체 서명 인증서입니다.

기본값인 VMWare CA를 사용하지 않을 경우 다른 인증 기관을 사용하도록 VMware를 구성할 수 있습니다.

사용자의 vCenter Server가 기본 VMware CA에서 발급한 인증서를 사용하는 경우 다음과 같이 인증서를 다운로드합니다.

curl -k "https://SERVER_ADDRESS/certs/download.zip" > download.zip

여기서 SERVER_ADDRESS는 vCenter 서버의 주소입니다.

unzip 명령어를 설치하고 인증서 파일의 압축을 풉니다.

sudo apt-get install unzip
unzip downloads.zip

처음에 unzip 명령어가 작동하지 않으면 명령어를 다시 입력합니다.

certs/lin에서 인증서 파일을 찾습니다.

vCenter.credentials.fileRef.path

문자열. vCenter 사용자 계정의 사용자 이름과 비밀번호가 포함된 사용자 인증 정보 구성 파일의 경로입니다. 사용자 계정에 관리자 역할 또는 이에 상응하는 권한이 있어야 합니다. vSphere 요구사항을 참조하세요. 예를 들면 다음과 같습니다.

vCenter:
  credentials:
    fileRef:
      path: "my-config-directory/user-creds.yaml"

vCenter.credentials.fileRef.entry

문자열. vCenter 사용자 계정의 사용자 이름과 비밀번호가 포함된 사용자 인증 정보 구성 파일의 사용자 인증 정보 블록의 이름입니다. 예를 들면 다음과 같습니다.

vCenter:
  credentials:
    fileRef:
      entry: "vcenter-creds"

enableDataplaneV2

부울. Dataplane V2를 사용 설정하려면 이 값을 true로 설정합니다. 그렇지 않으면 false로 설정합니다. 예를 들면 다음과 같습니다.

enableDataplaneV2: true

Dataplan V2는 사용자 클러스터에서만 사용할 수 있습니다.

문제해결 단계는 Dataplans V2 문제해결을 참조하세요.

network

이 섹션에는 사용자 클러스터 네트워크에 대한 정보가 포함되어 있습니다.

network.hostConfig

이 섹션에는 클러스터에서 사용하는 NTP 서버, DNS 서버, DNS 검색 도메인에 대한 정보를 제공합니다.

다음 필드 중 하나 또는 모두에 값을 제공한 경우 이 섹션을 입력합니다. 그렇지 않으면 이 섹션을 삭제하세요.

  • loadBalancer.seesaw.ipBlockFilePath
  • network.ipMode.ipBlockFilePath

network.hostConfig.dnsServers

문자열 배열. 호스트에 대해 사용할 DNS 서버의 주소입니다. 예를 들면 다음과 같습니다.

network:
  hostConfig:
    dnsServers:
    - "172.16.255.1"
    - "172.16.255.2"

network.hostConfig.ntpServers

문자열 배열. 호스트에 대해 사용할 시간 서버의 주소입니다. 예를 들면 다음과 같습니다.

network:
  hostConfig:
    ntpServers:
    - "216.239.35.0"

network.hostConfig.searchDomainsForDNS

문자열 배열. 호스트에 대해 사용할 DNS 검색 도메인입니다. 이러한 도메인은 도메인 검색 목록의 일부로 사용됩니다. 예를 들면 다음과 같습니다.

network:
  hostConfig:
    searchDomainsForDNS:
    - "my.local.com"

network.ipMode.type

문자열. 클러스터 노드가 DHCP 서버에서 IP 주소를 가져오도록 하려면 "dhcp"로 설정합니다. 사용자가 제공한 목록에서 클러스터 노드에 고정 IP 주소를 선택하려면 이를 "static"으로 설정합니다. 예를 들면 다음과 같습니다.

network:
  ipMode:
    type: "static"

network.ipMode.ipBlockFilePath

ipMode.type"static"으로 설정한 경우 이 필드를 입력합니다. ipMode.type"dhcp"로 설정한 경우 이 필드를 삭제합니다.

문자열. 클러스터의 IP 블록 파일 경로입니다. 예를 들면 다음과 같습니다.

network:
  ipMode:
    ipBlockFilePath: "/my-config-folder/user-cluster-ipblock.yaml"

network.serviceCIDRnetwork.podCiDR

문자열. 사용자 클러스터에는 서비스에 사용할 IP 주소 범위와 pod에 사용할 IP 주소 범위가 있어야 합니다. 이러한 범위는 network.serviceCIDRnetwork.podCIDR 필드로 지정됩니다. 이러한 필드는 기본값으로 채워집니다. 필요에 따라 채워진 값을 원하는 값으로 변경할 수 있습니다.

서비스 및 pod 범위는 겹치지 않아야 합니다. 또한 서비스 및 pod 범위는 클러스터의 노드에 사용되는 IP 주소와 겹치지 않아야 합니다.

예:

network:
  serviceCIDR: "10.96.232.0/24"
  podCIDR: "192.168.0.0/16"

network.vCenter.networkName

문자열. 사용자 클러스터 노드의 vSphere 네트워크 이름입니다.

이름에 특수문자가 포함되어 있으면 이스케이프 시퀀스를 사용해야 합니다.

특수문자 이스케이프 시퀀스
슬래시(/) %2f
백슬래시(\) %5c
퍼센트 기호(%) %25

네트워크 이름이 고유하지 않은 경우 네트워크 경로를 지정할 수 있습니다(예: /DATACENTER/network/NETWORK_NAME).

예를 들면 다음과 같습니다.

network:
  vCenter:
    networkName: "MY-USER-CLUSTER-NETWORK"

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

문자열. 이를 "Seesaw", "F5BigIP", "ManualLB"로 설정합니다. 예를 들면 다음과 같습니다.

loadBalancer:
  kind: "Seesaw"

loadBalancer.manualLB

loadbalancer.kind"manualLB"로 설정한 경우 이 섹션을 입력합니다. 그렇지 않으면 이 섹션을 삭제하거나 주석 처리합니다.

loadBalancer.manualLB.ingressHTTPNodePort

정수. 관리자 클러스터의 인그레스 서비스는 NodePort 유형의 서비스로 구현됩니다. 서비스에는 HTTP용 ServicePort가 있습니다. HTTP ServicePort에 대해 nodePort 값을 선택해야 합니다.

이 필드를 nodePort 값으로 설정합니다. 예를 들면 다음과 같습니다.

loadBalancer:
  manualLB:
    ingressHTTPNodePort: 32527

loadBalancer.manualLB.ingressHTTPSNodePort

정수. 관리자 클러스터의 인그레스 서비스는 NodePort 유형의 서비스로 구현됩니다. 서비스에 HTTPS용 ServicePort가 있습니다. HTTPS ServicePort에 대해 nodePort 값을 선택해야 합니다.

이 필드를 nodePort 값으로 설정합니다. 예를 들면 다음과 같습니다.

loadBalancer:
  manualLB:
    ingressHTTPSNodePort: 30139

loadBalancer.manualLB.controlPlaneNodePort

정수. 관리자 클러스터의 Kubernetes API 서버는 NodePort 유형 서비스로 구현됩니다. 서비스의 nodePort 값을 선택해야 합니다.

이 필드를 nodePort 값으로 설정합니다. 예를 들면 다음과 같습니다.

loadBalancer:
  manualLB:
    controlPlaneNodePort: 30968

loadBalancer.manualLB.addonsNodePort

이 필드를 삭제합니다. 사용자 클러스터에서는 사용되지 않습니다.

loadBalancer.f5BigIP

loadbalancer.kind"f5BigIP"로 설정한 경우 이 섹션을 입력합니다. 그렇지 않으면 이 섹션을 삭제하거나 주석 처리합니다.

loadBalancer.f5BigIP.address

문자열. F5 BIG-IP 부하 분산기의 주소입니다. 예를 들면 다음과 같습니다.

loadBalancer:
  f5BigIP:
      address: "203.0.113.2"

loadBalancer.f5BigIP.fileRef.path

문자열. 사용자 인증 정보 구성 파일의 경로이며 Anthos cluster on VMware가 F5 BIG-IP 부하 분산기에 연결하는 데 사용할 수 있는 계정의 사용자 이름과 비밀번호가 포함되어 있습니다. 예를 들면 다음과 같습니다.

loadBalancer:
  f5BigIP:
    fileRef:
      path: ""my-config-folder/user-creds.yaml"

loadBalancer.f5BigIP.fileRef.entry

문자열. F5 BIG-IP 계정의 사용자 이름 및 비밀번호가 포함된 사용자 인증 정보 구성 파일에 있는 사용자 인증 정보 블록의 이름입니다. 예를 들면 다음과 같습니다.

loadBalancer:
  f5BigIP:
    fileRef:
      entry: "f5-creds"

loadBalancer.f5BigIP.partition

문자열. 관리자 클러스터용으로 만든 BIG-IP 파티션의 이름입니다. 예를 들면 다음과 같습니다.

loadBalancer:
  f5BigIP:
    partition: "my-f5-admin-partition"

loadBalancer.f5BigIP.snatPoolName

문자열. SNAT를 사용하는 경우 SNAT 풀 이름입니다. SNAT를 사용하지 않는 경우 이 필드를 삭제하거나 주석 처리합니다. 예를 들면 다음과 같습니다.

loadBalancer:
  f5BigIP:
    snatPoolName: "my-snat-pool"

loadBalancer.seesaw

loadbalancer.kind"Seesaw"로 설정한 경우 이 섹션을 입력합니다. 그렇지 않으면 이 섹션을 삭제하거나 주석 처리합니다.

loadBalancer.seesaw.ipBlockFilePath

문자열. Seesaw VM의 IP 블록 파일 경로로 설정합니다. 예를 들면 다음과 같습니다.

loadbalancer:
  seesaw:
    ipBlockFilePath: "user-seesaw-ipblock.yaml"

loadBalancer.seesaw.vird

정수. Seesaw VM 또는 VM 쌍의 가상 라우터 식별자입니다. 이 ID는 VLAN 내에서 고유해야 합니다. 유효한 범위는 1~255입니다. 예를 들면 다음과 같습니다.

loadBalancer:
  seesaw:
    vrid: 125

loadBalancer.seesaw.masterIP

문자열. 제어 영역 Seesaw VM이 공지할 VIP입니다. 예를 들면 다음과 같습니다.

loadBalancer:
  seesaw:
    masterIP: 172.16.20.21

loadBalancer.seesaw.cpus

정수. 각 Seesaw VM의 CPU 수입니다. 예를 들면 다음과 같습니다.

loadBalancer:.
  seesaw:
    cpus: 8

loadBalancer.seesaw.memoryMB

정수. 각 Seesaw VM의 메모리 용량 수(MB)입니다. 예를 들면 다음과 같습니다.

loadBalancer:.
  seesaw:
    memoryMB: 8192

loadBalancer.seesaw.vCenter.networkName

문자열. Seesaw VM이 포함된 네트워크의 이름입니다. 예를 들면 다음과 같습니다.

loadBalancer:
  seesaw:
    vCenter:
      networkName: "my-seesaw-network"

loadBalancer.seesaw.enableHA

부울. 고가용성 Seesaw 부하 분산기를 만들려면 true로 설정합니다. 그렇지 않으면 false로 설정합니다. 예를 들면 다음과 같습니다.

loadBalancer:.
  seesaw:
    enableHA: true

loadBalancer.seesaw.disableVRRPMAC

부울. 이를 true로 설정하면 Seesaw 부하 분산기는 장애 조치용 MAC 학습을 사용하지 않습니다. 대신 Gratuitous ARP를 사용합니다. 이를 false로 설정하면 Seesaw 부하 분산기가 MAC 학습을 사용합니다. 이를 true로 설정하는 것이 좋습니다. vSphere 7 이상을 사용하고 고가용성 Seesaw 부하 분산기가 있는 경우 true로 설정해야 합니다. 예를 들면 다음과 같습니다.

loadBalancer:
  seesaw:
    disableVRRPMAC: true

masterNode

이 섹션에는 사용자 클러스터의 제어 영역 노드 역할을 하는 관리자 클러스터의 노드에 대한 정보가 포함되어 있습니다.

masterNode.cpus

정수. 이 사용자 클러스터의 제어 영역 역할을 하는 각 관리자 클러스터 노드의 CPU 수입니다. 예를 들면 다음과 같습니다.

masterNode:
  cpus: 8

masterNode.memoryMB

정수. 이 사용자 클러스터의 제어 영역 역할을 하는 각 관리자 클러스터 노드의 메모리 용량 수(MB) 입니다. 예를 들면 다음과 같습니다.

masterNode:
  memoryMB: 8192

masterNode.replicas

정수. 이 사용자 클러스터의 제어 영역 노드 수입니다. 이 필드를 1 또는 3으로 설정합니다. 예를 들면 다음과 같습니다.

masterNode:
  replicas: 3

nodePools

노드 풀을 각각 설명하는 객체 배열입니다.

nodePools[i].name

문자열. 노드 풀의 이름입니다. 예를 들면 다음과 같습니다.

nodePools:
- name: "my-node-pool"

nodePools[i].cpus

정수. 풀의 각 노드에 대한 CPU 수입니다. 예를 들면 다음과 같습니다.

nodePools"
- name: "my-node-pool"
  cpus: 8

nodePools[i].memoryMB

정수. 풀의 각 노드에 대한 메모리 용량 수(MB) 입니다. 예를 들면 다음과 같습니다.

nodePools"
- name: "my-node-pool"
  memoryMB: 8192

nodePools[i].replicas

정수. 풀의 노드 수입니다. 예를 들면 다음과 같습니다.

nodePools:
- name: "my-node-pool"
  replicas: 5

nodePools[i].bootDiskSizeGB

정수. 풀에 있는 각 노드의 부팅 디스크 크기(GB)입니다. VMware용 Anthos 클러스터 버전 1.5.0부터 이 구성을 사용할 수 있습니다. 예를 들면 다음과 같습니다.

nodePools"
- name: "my-node-pool"
  bootDiskSizeGB: 40

nodePools[i].osImageType

문자열. 노드 풀의 VM에서 실행할 OS 이미지 유형입니다. 가능한 값은 'ubuntu' 및 'cos'입니다. 예를 들면 다음과 같습니다.

nodePools"
- name: "my-node-pool"
  osImageType: "cos"

noodePools[i].labels

매핑. 풀의 각 노드에 적용할 라벨입니다. 예를 들면 다음과 같습니다.

nodePools:
- name: "my-node-pool"
  labels:
    environment: "production"
    tier: "cache"

nodePools[i].taints

객체의 배열이며, 각 객체의 taint을 설명합니다. 예를 들면 다음과 같습니다.

nodePools:
- name: "my-node-pool"
  taints:
  - key: "staging"
    value: "true"
    effect: "NoSchedule"

nodePools[i].vsphere.datastore

문자열. 풀의 각 노드가 생성될 vCenter Datastore의 이름입니다. 예를 들면 다음과 같습니다.

nodePools:
- name: "my-node-pool"
  vsphere:
    datastore: "my-datastore"

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)

antiAffinityGroups.enabled

부울. DRS 규칙 생성을 사용 설정하려면 이 값을 true로 설정합니다. 그렇지 않으면 false로 설정합니다. 예를 들면 다음과 같습니다.

antiAffinityGroups:
  enabled true

VMware용 Anthos 클러스터는 자동으로 사용자 클러스터 노드의 VMware Distributed Resource Scheduler(DRS) 안티어피니티 규칙을 만들어 데이터 센터에 있는 물리적 호스트 최소 3개 이상에 분산되도록 합니다.

이 기능을 사용하려면 vSphere 환경이 다음 조건을 충족해야 합니다.

  • VMware DRS가 사용 설정되어 있습니다. VMware DRS에는 vSphere Enterprise Plus 라이선스 버전이 필요합니다.

  • vSphere 사용자 계정에 Host.Inventory.Modify cluster 권한이 있습니다.

  • 사용 가능한 물리적 호스트가 3개 이상입니다.

vSphere Standard 라이선스가 있으면 VMware DRS를 사용 설정할 수 없습니다.

DRS를 사용 설정하지 않았거나 vSphere VM을 예약할 수 있는 호스트가 3개 이상이 아니라면 antiAffinityGroups.enabledfalse로 설정합니다.

authentication

이 섹션에서는 클러스터 사용자가 인증 및 승인되는 방식에 대한 정보를 제공합니다.

authentication.oidc

OpenID Connect(OIDC)를 사용하여 이 클러스터에 대한 액세스를 관리하려면 이 섹션을 작성합니다. 그렇지 않으면 이 섹션을 삭제하거나 주석 처리합니다.

authentication.oidc.issuerURL

문자열. OpenID 제공업체의 URL입니다. gcloud CLI 및 Cloud Console과 같은 클라이언트 애플리케이션은 이 URL로 승인 요청을 보냅니다. Kubernetes API 서버는 이 URL을 사용하여 토큰을 확인할 수 있도록 공개 키를 검색합니다. HTTPS를 사용해야 합니다. 예를 들면 다음과 같습니다.

authentication:
  oidc:
    issuerURL: "https://example.com/adfs"

authentication.oidc.kubectlRedirectURL

문자열. gcloud CLI의 리디렉션 URL입니다. 예를 들면 다음과 같습니다.

authentication:
  oidc:
    kubectlRedirectURL: "https://localhost:1025/callback"

authentication.oidc.clientID

문자열. OpenID 제공업체에 인증을 요청하는 클라이언트 애플리케이션의 ID입니다. gcloud CLI와 Cloud Console 모두 이 ID를 사용합니다. 예를 들면 다음과 같습니다.

authentication:
  oidc:
    clientID: "my-big-hex-string"

authentication.oidc.clientSecret

문자열. 클라이언트 애플리케이션의 보안 비밀입니다. gcloud CLI와 Cloud Console 모두 이 보안 비밀을 사용합니다. 예를 들면 다음과 같습니다.

authentication:
  oidc:
    clientSecret: "N3i&JlLZoD!W"

authentication.oidc.username

문자열. 사용자 이름으로 사용할 JWT 클레임입니다. 기본값은 sub입니다. 이 값은 최종 사용자의 고유 식별자로 사용됩니다. OpenID 제공업체에 따라 email 또는 name과 같은 다른 클레임을 선택할 수 있습니다. 하지만 email 이외의 클레임은 다른 플러그인과의 이름 충돌을 방지하기 위해 발급기관 URL이 프리픽스로 추가됩니다. 예를 들면 다음과 같습니다.

authentication:
  oidc:
    username: "sub"

authentication.oidc.usernamePrefix

문자열. 기존 이름과 충돌하지 않도록 사용자 이름 클레임에 추가되는 프리픽스입니다. 이 필드를 제공하지 않고 usernameemail 이외의 값이면 기본적으로 issuerurl# 프리픽스가 추가됩니다. - 값을 사용하면 모든 프리픽스 추가가 중지될 수 있습니다. 예를 들면 다음과 같습니다.

authentication:
  oidc:
    usernamePrefix: "my-prefix"

authentication.oidc.group

문자열. 제공업체가 보안 그룹을 반환하기 위해 사용할 JWT 클레임입니다. 예를 들면 다음과 같습니다.

authentication:
  oidc:
    group: "sec-groups"

authentication.oidc.groupPrefix

문자열. 기존 이름과 충돌을 방지하기 위해 그룹 클레임에 추가된 프리픽스입니다. 예를 들어 그룹이 foobar이고 프리픽스가 gid-이면 gid-foobar가 됩니다. 기본적으로 이 값은 비어 있으며, 프리픽스가 없습니다. 예를 들면 다음과 같습니다.

authentication:
  oidc:
    groupPrefix: "gid-"

authentication.oidc.scopes

문자열. OpenID 제공업체에 전송할 추가 범위를 쉼표로 구분한 목록입니다. 예를 들면 다음과 같습니다.

authentication:
  oidc:
    scopes: "offline-access"

Microsoft Azure 또는 Okta로 인증하려면 offline_access로 설정합니다.

authentication.oidc.extraParams

문자열. OpenID 제공업체에 전송할 추가 키-값 매개변수를 쉼표로 구분한 목록입니다.

예를 들면 다음과 같습니다.

authentication:
  oidc:
    extraparams: "prompt=consent"

authentication.oidc.deployCloudConsoleProxy

문자열. Google Cloud Console이 사용자 인증을 위해 온프레미스 OIDC 제공업체에 액세스하도록 허용하기 위해 클러스터에 역방향 프록시를 배포할지 여부를 지정합니다. 문자열은 "true" 또는 "false"여야 합니다. 공개 인터넷을 통해 ID 공급업체에 연결할 수 없고 Google Cloud Console을 사용하여 인증하려는 경우 이 필드를 "true"로 설정해야 합니다. 공백으로 두면 이 필드 기본값은 "false"입니다.

authentication.oidc.caPath

문자열. ID 공급업체의 웹 인증서를 발급한 인증 기관(CA)의 인증서 경로입니다. 이 값은 필수가 아닐 수 있습니다. 예를 들어 ID 공급업체의 인증서가 잘 알려진 공개 CA에서 발급된 경우 여기에 값을 제공할 필요가 없습니다. 하지만 deployCloudConsoleProxy"true"이면 잘 알려진 공개 CA라도 이 값을 제공해야 합니다.

예를 들면 다음과 같습니다.

authentication:
  oidc:
    caPath: "my-cert-folder/provider-root-cert.pem"

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"

authentication.ldap

LDAP 제공업체에 대한 정보를 제공하려면 이 섹션을 입력합니다. 그렇지 않으면 이 섹션을 삭제하세요.

authentication.ldap.name

문자열. LDAP 제공업체의 이름입니다. 예를 들면 다음과 같습니다.

authentication:
  ldap:
    name: "my-ldap-provider"

authentication.ldap.host

문자열. LDAP 제공업체의 호스트 이름 또는 IP 주소입니다. 예를 들면 다음과 같습니다.

authentication:
  ldap:
    host" "203.0.113.20"

authentication.ldap.connectionType

문자열. LDAP에 비보안 연결을 사용하려면 이를 "insecure"로 설정합니다. 보안 연결을 사용하려면 이 필드를 삭제합니다.

기본값은 TLS 기반 LDAP를 사용하는 것입니다. 이를 변경해서 비보안 연결을 사용하려면 connectionType을 "insecure"로 설정합니다. 이를 "insecure"로 설정하면 ldap.caPath 값을 제공할 필요가 없습니다.

예시:

authentication:
  ldap:
    connectionType: "insecure"

authentication.ldap.caPath

문자열. LDAP 제공업체의 루트 인증서 경로입니다. 예를 들면 다음과 같습니다.

authentication:
  ldap:
    caPath: "my-cert-folder/ldap-cert.pem"

authentication.ldap.user.baseDN

문자열. LDAP 디렉터리에 있는 사용자 항목의 위치입니다. 예를 들면 다음과 같습니다.

authentication:
  ldap:
    user:
      baseDN: "DC=example-domain,DC=com"

authentication.ldap.user.userAttribute

문자열: DN에서 사용자 이름 앞에 오는 속성의 이름입니다. 기본값은 "CN"입니다. 예를 들면 다음과 같습니다.

authentication:
  ldap:
    user:
      userAttribute: "CN"

authentication.ldap.user.memberAttribute

문자열. 사용자의 그룹 멤버십을 기록하는 속성의 이름입니다. 기본값은 "memberOf"입니다. 예를 들면 다음과 같습니다.

authentication:
  ldap:
    user:
      memberAttribute: "memberOf"

stackdriver

이 섹션에서는 로그 및 측정항목을 저장하는 데 사용할 Google Cloud 프로젝트 및 서비스 계정에 대한 정보를 제공합니다.

stackdriver.projectID

문자열. 로그를 보려는 Google Cloud 프로젝트의 ID입니다. 예를 들면 다음과 같습니다.

stackdriver:
  projectID: "my-logs-project"

stackdriver.clusterLocation

문자열. 로그를 저장할 Google Cloud 리전입니다. 온프레미스 데이터 센터와 가까운 리전을 선택하는 것이 좋습니다. 예를 들면 다음과 같습니다.

stackdriver:
  clusterLocation: "us-central1"

stackdriver.enableVPC

부울. 클러스터의 네트워크가 VPC로 제어되는 경우 이 필드를 true로 설정합니다. 이렇게 하면 모든 원격 분석이 Google의 제한된 IP 주소를 통해 이동합니다. 그렇지 않으면 이 필드를 false로 설정합니다. 예를 들면 다음과 같습니다.

stackdriver:
  enableVPC: false

stackdriver.serviceAccountKeyPath

문자열. 로깅 모니터링 서비스 계정의 JSON 키 파일 경로입니다. 예를 들면 다음과 같습니다.

stackdriver:
  serviceAccountKeyPath: "my-key-folder/log-mon-key.json"

stackdriver.disableVsphereResourceMetrics

부울. vSphere에서 측정항목 수집을 사용 중지하려면 true로 설정합니다. 그렇지 않으면 false로 설정합니다. 예를 들면 다음과 같습니다.

stackdriver:
  disableVsphereResourceMetrics: true

gkeConnect

이 섹션에서는 클러스터를 Google Cloud에 연결하는 데 사용할 Google Cloud 프로젝트 및 서비스 계정에 대한 정보를 제공합니다.

gkeConnect.projectID

문자열. 클러스터를 Google Cloud에 연결하는 데 사용할 클라우드 프로젝트의 ID입니다. 예를 들면 다음과 같습니다.

gkeConnect:
  projectID: "my-connect-project-123"

gkeConnect.registerServiceAccountKeyPath

문자열. 연결-등록 서비스 계정의 JSON 키 파일 경로입니다. 예를 들면 다음과 같습니다.

gkeConnect:
  registerServiceAccountKeyPath: "my-key-folder/connect-register-key.json"

gkeConnect.agentServiceAccountKeyPath

문자열. 연결-에이전트 서비스 계정의 JSON 키 파일 경로입니다. 예를 들면 다음과 같습니다.

gkeConnect:
  agentServiceAccountKeyPath: "my-key-folder/connect-agent-key.json"

cloudRun.enabled

부울. Cloud Run을 사용 설정하려면 true로 설정합니다. 그렇지 않으면 false로 설정합니다. 예를 들면 다음과 같습니다.

cloudRun:
  enabled: 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 키 파일 경로입니다. 예를 들면 다음과 같습니다.

usageMetering:
  bigQueryServiceAccountKeyPath: "my-key-folder/bq-key.json"

usageMetering.enableConsumptionMetering

부울. 소비 기반 측정을 사용 설정하려면 true로 설정합니다. 그렇지 않으면 false로 설정합니다. 예를 들면 다음과 같습니다.

usageMetering:
  enableConsumptionMetering: true

cloudAuditLogging

클러스터의 Kubernetes API 서버의 감사 로그를 Cloud 감사 로그와 통합하려면 이 섹션을 입력합니다. 그렇지 않으면 이 섹션을 삭제하거나 주석 처리합니다.

cloudAuditLogging.projectID

문자열. 감사 로그를 저장할 Google Cloud 프로젝트의 프로젝트 ID입니다. 예를 들면 다음과 같습니다.

cloudAuditLogging:
  projectID: "my-audit-project"

cloudAuditLogging.clusterLocation

문자열. 감사 로그를 저장할 Google Cloud 리전입니다. 온프레미스 데이터 센터와 가까운 리전을 선택하는 것이 좋습니다. 예를 들면 다음과 같습니다.

cloudAuditLogging:
  clusterLocation: "us-central1"

cloudAuditLogging.serviceAccountKeyPath

문자열. 감사 로깅 서비스 계정의 JSON 키 파일 경로입니다. 예를 들면 다음과 같습니다.

cloudAuditLogging:
  serviceAccountKeyPath: "my-key-folder/audit-log-key.json"

autoRepair.enabled

부울. 노드 자동 복구를 사용 설정하려면 이 값을 true로 설정합니다. 그렇지 않으면 false로 설정합니다. 예를 들면 다음과 같습니다.

autoRepair:
  enabled: true