이 페이지에서는 베어메탈용 GKE 클러스터 구성 파일에서 지원되는 필드를 설명합니다. 다음 표에서는 각 필드가 필수인지 확인합니다. 또한 표에서는 변경 가능한 필드를 보여줍니다. 즉, 클러스터를 만든 후에 변경할 수 있는 필드를 나타냅니다. 표에 명시된 대로 일부 변경 가능한 필드는 클러스터 업그레이드 중에만 변경될 수 있습니다.
클러스터 구성 파일 템플릿 생성
bmctl create config 명령어를 사용하여 클러스터 구성 파일을 만들 수 있습니다. 일부 필드에는 기본값이 있고 다른 필드(예: metadata.name)는 자동으로 입력될 수 있지만 이 YAML 형식 구성 파일은 클러스터에 대한 정보를 지정하기 위한 템플릿입니다.
새 클러스터 구성 파일을 만들려면 /baremetal 폴더에서 다음 명령어를 사용합니다.
bmctl create config -c CLUSTER_NAME
CLUSTER_NAME을 만들려는 클러스터의 이름으로 바꿉니다. bmctl에 대한 자세한 내용은 bmctl 도구를 참조하세요.
생성된 클러스터 구성 파일의 예시는 클러스터 구성 파일 샘플을 참조하세요.
구성 파일 작성
클러스터를 만들거나 업그레이드하기 전에 다음 필드 참조 표에 설명된 대로 구성 파일에 필드 값을 입력합니다.
클러스터 구성 필드
입력란 이름
리소스 유형
필수 여부
변경 가능 여부
anthosBareMetalVersion
필수. 문자열. 클러스터 버전입니다. 이 값은 클러스터 생성 및 클러스터 업그레이드에 대해 설정됩니다.
변경 가능성: 기존 클러스터의 값은 수정할 수 없습니다.
클러스터 업그레이드 프로세스를 통해서만 버전을 업데이트할 수 있습니다.
클러스터 리소스
필수
변경 가능
authentication
이 섹션에는 OpenID Connect(OIDC)를 사용하는 데 필요한 설정이 포함되어 있습니다.
OIDC를 사용하면 기존의 ID 공급업체를 통해 Google Distributed Cloud 클러스터에서 사용자 및 그룹 인증을 관리할 수 있습니다.
클러스터 리소스
—
—
authentication.oidc.certificateAuthorityData
선택사항. OIDC 제공업체의 base64로 인코딩된 PEM 인코딩 인증서입니다. 문자열을 만들려면 헤더를 포함하여 인증서를 base64로 인코딩합니다. certificateAuthorityData에 결과 문자열을 단일 줄로 포함합니다.
선택사항. 문자열. OpenID 제공업체에 인증을 요청하는 클라이언트 애플리케이션의 ID입니다.
클러스터 리소스
선택사항
변경 불가
authentication.oidc.clientSecret
선택사항. 문자열. OIDC 클라이언트 애플리케이션과 OIDC 제공업체 간에 공유된 보안 비밀입니다.
클러스터 리소스
선택사항
변경 불가
authentication.oidc.deployCloudConsoleProxy
선택사항. 불리언(true|false). 인터넷을 통해 공개적으로 액세스할 수 없는 온프레미스 ID 공급업체에 Google Cloud 콘솔을 연결하기 위해 클러스터에 리버스 프록시를 배포할지 여부를 지정합니다. 공개 인터넷을 통해 ID 공급업체에 연결할 수 없는 경우 이 필드를 true로 설정하여 Google Cloud 콘솔에서 인증합니다. 기본적으로 이 값은 false로 설정됩니다.
클러스터 리소스
선택사항
변경 불가
authentication.oidc.extraParams
선택사항. 쉼표로 구분된 목록입니다. OpenID 제공업체에 전송할 추가적인 키-값 매개변수입니다.
클러스터 리소스
선택사항
변경 불가
authentication.oidc.groupPrefix
선택사항. 문자열. 기존 이름과 충돌을 방지하기 위해 그룹 클레임에 추가된 프리픽스입니다. 예를 들어 그룹이 dev이고 프리픽스가 oidc:이면 oidc:dev가 됩니다.
선택사항. URL 문자열. 승인 요청이 OpenID로 전송되는 URL입니다(예: https://example.com/adfs). Kubernetes API 서버는 이 URL을 사용하여 토큰을 확인할 수 있도록 공개 키를 검색합니다. URL은 HTTPS를 사용해야 합니다.
클러스터 리소스
선택사항
변경 불가
authentication.oidc.kubectlRedirectURL
선택사항. URL 문자열. 승인을 위해 kubectl에서 사용하는 리디렉션 URL입니다. OIDC를 사용 설정할 때 kubectlRedirectURL 값을 지정해야 합니다.
클러스터 리소스
선택사항
변경 불가
authentication.oidc.proxy
선택사항. URL 문자열. 해당되는 경우 클러스터가 OIDC 제공업체에 연결하는 데 사용할 프록시 서버입니다. 값에 호스트 이름/IP 주소가 포함되어야 하며 선택적으로 포트, 사용자 이름, 비밀번호를 포함할 수 있습니다. 예를 들면 다음과 같습니다. http://user:password@10.10.10.10:8888.
클러스터 리소스
선택사항
변경 불가
authentication.oidc.scopes
선택사항. 쉼표로 구분된 목록입니다. OpenID 제공업체에 전송할 추가적인 범위입니다. Microsoft Azure 및 Okta에는 offline_access 범위가 필요합니다.
클러스터 리소스
선택사항
변경 불가
authentication.oidc.usernamePrefix
선택사항. 문자열. 사용자 이름 클레임에 추가되는 프리픽스입니다.
클러스터 리소스
선택사항
변경 불가
authentication.oidc.username
선택사항. 문자열.
사용자 이름으로 사용할 JWT 클레임입니다. 지정되지 않은 경우 기본값은 sub입니다.
클러스터 리소스
선택사항
변경 불가
bypassPreflightCheck
선택사항. 불리언(true|false). true로 설정하면 기존 클러스터에 리소스를 적용할 때 내부 실행 전 검사가 무시됩니다. 기본값은 false입니다.
변경 가능성:bmctl update 명령어를 사용하여 기존 클러스터에 대해 이 값을 수정할 수 있습니다.
클러스터 리소스
선택사항
변경 가능
clusterNetwork
이 섹션에는 클러스터의 네트워크 설정이 포함됩니다.
클러스터 리소스
필수
변경 가능
clusterNetwork.advancedNetworking
불리언. 이 필드를 true로 설정하여 BGP 또는 이그레스 NAT 게이트웨이를 사용하는 번들 부하 분산과 같은 고급 네트워킹 기능을 사용 설정합니다. 두 기능 모두 GDC용 Network Gateway를 사용합니다. GDC용 Network Gateway는 GKE Enterprise 및 Google Kubernetes Engine(GKE)에서 고급 네트워킹 기능을 사용 설정하는 데 필요한 핵심 구성요소입니다. GDC용 Network Gateway의 주요 이점 중 하나는 NetworkGatewayGroup 커스텀 리소스에 지정한 주소 집합에서 유동 IP 주소를 동적으로 할당할 수 있다는 점입니다.
불리언. 이 필드를 false로 설정하여 Google Distributed Cloud와 번들로 제공되는 인그레스 기능을 사용 중지합니다. 클러스터의 번들 인그레스 기능은 인그레스만 지원합니다. 완전한 기능의 서비스 메시가 갖는 추가 이점을 얻기 위해 Istio 또는 Anthos Service Mesh와 통합하는 경우 번들 인그레스를 중지하는 것이 좋습니다. 이 필드는 기본적으로 true로 설정됩니다. 이 필드는 생성된 클러스터 구성 파일에 제공되지 않습니다. 버전 1.13.0 클러스터 이상에만 번들 인그레스를 중지할 수 있습니다.
불리언. 플랫 모드 클러스터 네트워킹 모델을 사용 설정하려면 이 필드를 true로 설정합니다. 플랫 모드의 각 포드에는 고유한 IP 주소가 있습니다. 포드는 중간 게이트웨이나 네트워크 주소 변환(NAT)을 사용할 필요 없이 서로 직접 통신할 수 있습니다.
flatIPv4는 기본적으로 false입니다. 클러스터 생성 중에만 플랫 모드를 사용 설정할 수 있습니다. 클러스터에 플랫 모드를 사용 설정하면 중지할 수 없습니다.
클러스터 리소스
선택사항
변경 불가
clusterNetwork.forwardMode
선택사항. 문자열. Dataplane V2 부하 분산의 네트워킹 모드를 지정합니다. 소스 네트워크 주소 변환(SNAT)이 기본 네트워킹 모드입니다. 직접 서버 반환(DSR) 모드는 SNAT 부하 분산 문제를 해결합니다. DSR 모드(forwardMode: dsr)에서 부하 분산기 노드는 IP 옵션을 사용하여 클라이언트 소스 주소를 저장합니다.
Dataplane V2 부하 분산의 네트워킹 모드는 클러스터 생성 시에만 구성할 수 있습니다.
필수. CIDR 블록 형식의 IPv4 주소 범위입니다. 포드는 포드 네트워크가 할당된 IP 범위를 지정합니다.
최소 포드 CIDR 범위: 14비트 크기(16,384개 IP 주소)에 해당하는 /18의 마스크 값입니다.
최대 포드 CIDR 범위: 24비트 크기(16,777,216개 IP 주소)에 해당하는 /8의 마스크 값입니다.
예를 들면 다음과 같습니다.
pods:
cidrBlocks:
- 192.168.0.0/16
클러스터 리소스
필수
변경 불가
clusterNetwork.sriovOperator
선택사항. 불리언. 이 필드를 true로 설정하여 클러스터의 SR-IOV 네트워킹을 사용 설정합니다.
SR-IOV 네트워킹 구성 및 사용에 대한 자세한 내용은 SR-IOV 네트워킹 문서를 참조하세요.
클러스터 리소스
선택사항
변경 가능
clusterNetwork.services.cidrBlocks
필수. CIDR 블록 형식의 IPv4 주소 범위입니다. 서비스 가상 IP(VIP) 주소가 할당되는 IP 주소 범위를 지정합니다. 범위는 네트워크에서 연결할 수 있는 서브넷과 겹치지 않아야 합니다. 비공개 인터넷 주소 할당에 대한 자세한 내용은 RFC 1918을 참조하세요.
Google Distributed Cloud 출시 버전 1.15.0부터는 이 필드를 변경할 수 있습니다. 필요한 경우 클러스터를 만든 후 서비스에 할당된 IP 주소 수를 늘릴 수 있습니다. 자세한 내용은 서비스 네트워크 범위 늘리기를 참조하세요.
IPv4 서비스 CIDR의 범위만 늘릴 수 있습니다. 네트워크 범위를 줄일 수는 없습니다. 즉, 마스크('/' 뒤에 있는 값)를 늘릴 수 없습니다.
최소 서비스 CIDR 범위: 8비트 크기(256개 주소)에 해당하는 /24의 마스크 값입니다.
최대 서비스 CIDR 범위: 20비트 크기(1,048,576개 IP 주소)에 해당하는 /12의 마스크 값입니다.
예를 들면 다음과 같습니다.
services:
cidrBlocks:
- 10.96.0.0/12
클러스터 리소스
필수
변경 가능
clusterOperations
이 섹션에서는 Cloud Logging 및 Cloud Monitoring에 대한 정보를 제공합니다.
클러스터 리소스
필수
변경 가능
clusterOperations.enableApplication
이 필드는 더 이상 사용되지 않으며 아무런 영향도 미치지 않습니다. 애플리케이션 로깅 및 모니터링은 Stackdriver 커스텀 리소스에서 사용 설정됩니다. 애플리케이션 로깅 및 모니터링 사용 설정에 대한 자세한 내용은 애플리케이션 로깅 및 모니터링 사용 설정을 참조하세요.
클러스터 리소스
노옵스(no-ops)
변경 가능
clusterOperations.disableCloudAuditLogging
불리언. Cloud 감사 로그는 의심스러운 API 요청을 조사하고 통계를 수집하는 데 유용합니다. Cloud 감사 로그는 기본적으로 사용 설정(disableCloudAuditLogging: false)됩니다. Cloud 감사 로그를 중지하려면 true로 설정합니다.
문자열. Logging 로그와 Monitoring 측정항목을 저장할 Google Cloud 리전입니다.
온프레미스 데이터센터 근처에 있는 리전을 선택하는 것이 좋습니다. 자세한 내용은 글로벌 위치를 참조하세요.
예를 들면 다음과 같습니다.
location: us-central1
클러스터 리소스
필수
변경 불가
clusterOperations.projectID
문자열. 로그 및 측정항목을 보려는 Google Cloud 프로젝트의 프로젝트 ID입니다.
클러스터 리소스
필수
변경 불가
controlPlane
이 섹션에서는 컨트롤 플레인과 구성요소에 대한 정보를 제공합니다.
클러스터 리소스
필수
변경 가능
controlPlane.apiServerCertExtraSANs
선택사항. 문자열 배열(도메인 이름 및 IP 주소) 주체 대체 이름(SAN)은 인증서를 유효하게 사용할 도메인 이름과 하위 도메인을 정의할 수 있게 하는 SSL 인증서의 기능입니다. 베어메탈용 GKE 클러스터에서 API 서버 인증서의 SAN에는 기본적으로 컨트롤 플레인 노드의 IP 및 VIP 주소와 Kubernetes DNS 이름이 포함됩니다.
이 필드를 사용하여 클러스터의 API 서버 인증서에 SAN을 추가합니다. 도메인 이름은 RFC 1035를 준수해야 합니다.
자세한 내용은 API 서버 인증서에 도메인 추가를 참조하세요.
이 섹션에서는 컨트롤 플레인 및 구성요소에 사용되는 노드 풀의 IP 주소를 지정합니다. 컨트롤 플레인 노드 풀 사양(예: 부하 분산기 노드 풀 사양)은 특수합니다. 이 사양은 중요한 클러스터 리소스를 선언하고 제어합니다. 이 리소스의 표준 소스는 클러스터 구성 파일의 이 섹션입니다. 최상위 컨트롤 플레인 노드 풀 리소스를 직접 수정하지 마세요. 그 대신 클러스터 구성 파일에서 연결된 섹션을 수정하세요.
클러스터 리소스
필수
변경 가능
controlPlane.nodePoolSpec.nodes
필수. IP 주소 배열. 일반적으로 이 배열은 단일 머신의 IP 주소이거나 고가용성(HA) 배포를 위한 세 머신의 IP 주소입니다.
선택사항. 정수(음수 아님). 요청 급증을 처리하기 위해 처리 큐에 추가할 수 있는 이미지 pull 요청의 최대 수량을 지정합니다. pull이 시작되는 즉시 큐에 새 요청을 추가할 수 있습니다. 기본값은 10입니다. 이 필드는 registryBurst kubelet 구성(v1beta1) 옵션에 해당합니다.
registryPullQPS 값이 이 설정보다 우선 적용됩니다. 예를 들어 기본 설정에서는 최대 10개의 동시 쿼리 버스트가 허용되지만 기본 속도인 초당 쿼리 5개로 처리되어야 합니다. 이 버스트 동작은 registryPullQPS가 0보다 큰 경우에만 사용됩니다.
클러스터를 생성, 업데이트 또는 업그레이드할 때마다 이 필드를 설정할 수 있으며 클러스터를 업그레이드해도 설정이 유지됩니다. 자세한 내용은 kubelet 이미지 pull 설정 구성을 참조하세요.
선택사항. 정수(음수 아님). 컨테이너 레지스트리 이미지 pull 쿼리의 처리 속도를 초당 쿼리 수(QPS) 단위로 지정합니다.
registryPullQPS가 0보다 큰 값으로 설정되면 쿼리 속도가 해당하는 초당 쿼리 수로 제한됩니다. registryPullQPS가 0으로 설정된 경우 쿼리 속도에 제한이 없습니다. 기본값은 5입니다.
선택사항. 불리언(true|false). 이 필드는 컨테이너 레지스트리 pull이 동시에 처리되는지 아니면 한 번에 하나씩 처리되는지를 지정합니다. 기본값인 true는 pull을 한 번에 하나씩 처리하도록 지정합니다. false로 설정하면 kubelet이 이미지를 동시에 가져옵니다. 이 필드는 serializeImagePulls kubelet 구성(v1beta1) 옵션에 해당합니다.
클러스터를 생성, 업데이트 또는 업그레이드할 때마다 이 필드를 설정할 수 있으며 클러스터를 업그레이드해도 설정이 유지됩니다. 자세한 내용은 kubelet 이미지 pull 설정 구성을 참조하세요.
클러스터 리소스
선택사항
변경 가능
gkeConnect
이 섹션에서는 클러스터를 Google Cloud에 연결하는 데 사용할 Google Cloud 프로젝트에 대한 정보를 제공합니다.
클러스터 리소스
필수
변경 불가
gkeConnect.projectID
필수: 문자열. 클러스터를 Google Cloud에 연결하는 데 사용할 Google Cloud 프로젝트의 ID입니다. 이를 fleet 호스트 프로젝트라고도 부릅니다.
선택사항. 문자열. 기본값은 global입니다.
클러스터의 Fleet 멤버십은 Fleet 서비스(gkehub.googleapis.com) 및 Connect 서비스(gkeconnect.googleapis.com)에 의해 관리됩니다. Fleet 멤버십은 전역 또는 리전일 수 있습니다. 원하는 경우 gkeConnect.location을 사용하여 Fleet 및 Connect 서비스가 실행되는 Google Cloud 리전을 지정하여 트래픽이 리전으로 제한되도록 할 수 있습니다.
1.16 이상에서 GKE On-Prem API가 Google Cloud 프로젝트에 사용 설정되면 프로젝트의 모든 클러스터는 자동으로 clusterOperations.location에 구성된 리전의 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에서 프로젝트의 모든 클러스터를 등록하려면 시작하기 전에의 단계를 수행하여 프로젝트에서 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 명령어를 실행하여 클러스터에 대한 정보를 가져올 수 있습니다.
GKE On-Prem API는 Google Cloud에 클러스터 상태 메타데이터를 저장합니다.
API는 이 메타데이터를 통해 클러스터 수명 주기를 관리합니다. 표준 도구는 GKE On-Prem API를 사용하며 이러한 도구를 통칭해서 GKE On-Prem API 클라이언트라고 합니다.
gkeOnPremAPI.enabled를 true로 설정한 경우 bmctl을 사용하여 클러스터를 만들거나 업데이트하기 전에 시작하기 전에의 단계를 수행하여 GKE On-Prem API를 사용 설정하고 초기화해야 합니다.
이 섹션을 추가하고 클러스터를 만들거나 업데이트한 후에 섹션을 삭제하고 클러스터를 업데이트하면 업데이트가 실패합니다.
표준 도구를 사용하여 클러스터를 만들면 클러스터는 자동으로 GKE On-Prem API에 등록됩니다.
클러스터 리소스
선택사항
gkeOnPremAPI.enabled
프로젝트에서 GKE On-Prem API가 사용 설정되면 기본적으로 클러스터가 GKE On-Prem API에 등록됩니다. 클러스터를 등록하지 않으려면 false로 설정합니다.
클러스터를 GKE On-Prem API에 등록한 후에 클러스터 등록을 해제해야 하는 경우 다음과 같이 변경한 다음 클러스터를 업데이트합니다.
gkeOnPremAPI:
enabled: false
클러스터 리소스
필수
변경 가능
gkeOnPremAPI.location
GKE On-Prem API가 실행되고 클러스터 메타데이터를 저장하는 Google Cloud 리전입니다. 지원되는 리전 중 하나를 선택합니다. gkeOnPremAPI.enabled가 true인 경우 비어 있지 않은 문자열이어야 합니다. gkeOnPremAPI.enabled가 false이면 이 필드를 포함하지 마세요.
이 섹션이 구성 파일에 포함되지 않은 경우 이 필드는 clusterOperations.location으로 설정됩니다.
클러스터 리소스
선택사항
변경 불가
kubevirt.useEmulation(지원 중단됨)
지원이 중단되었습니다. 출시 버전 1.11.2부터는 VMRuntime 커스텀 리소스만 업데이트하여 GDC용 VM 런타임을 사용 설정하거나 중지할 수 있습니다.
불리언. 소프트웨어 에뮬레이션을 사용하여 가상 머신을 실행할지 여부를 결정합니다. 노드에서 하드웨어 가상화를 지원하는 경우 성능 향상을 위해 useEmulation을 false로 설정합니다. 하드웨어 가상화가 지원되지 않거나 확실하지 않은 경우 true로 설정합니다.
클러스터 리소스
선택사항
변경 가능
loadBalancer
이 섹션에는 클러스터 부하 분산을 위한 설정이 포함되어 있습니다.
클러스터 리소스
필수
변경 가능
loadBalancer.addressPools
객체. 클러스터 부하 분산기 풀의 이름과 IP 주소 배열입니다. 주소 풀 구성은 관리자가 아닌 클러스터의 bundled LB 모드에서만 유효합니다. 언제든지 새 주소 풀을 추가할 수 있지만 기존 주소 풀을 삭제할 수는 없습니다.
기존 주소 풀을 수정하여 avoidBuggyIPs 및 manualAssign 필드만 변경할 수 있습니다.
클러스터 리소스
선택사항
변경 불가
loadBalancer.addressPools.addresses
IP 주소 범위의 배열. 데이터 영역 부하 분산기의 겹치지 않는 IP 범위 목록을 지정합니다. 모든 주소는 부하 분산기 노드와 동일한 서브넷에 있어야 합니다.
선택사항. 불리언(true | false). true인 경우 풀은 .0 및 .255로 끝나는 IP 주소를 생략합니다.
일부 네트워크 하드웨어는 이 특수 주소에 대한 트래픽을 삭제합니다. 이 필드를 생략할 수 있으며 기본값은 false입니다.
클러스터 리소스
선택사항
변경 가능
loadBalancer.addressPools.manualAssign
선택사항. 불리언(true | false). true인 경우 이 풀의 주소는 Kubernetes 서비스에 자동으로 할당되지 않습니다. true이면 이 풀의 IP 주소는 서비스에서 명시적으로 지정된 경우에만 사용됩니다. 이 필드를 생략할 수 있으며 기본값은 false입니다.
클러스터 리소스
선택사항
변경 가능
loadBalancer.mode
필수. 문자열. 부하 분산 모드를 지정합니다. bundled 모드에서 Google Distributed Cloud는 클러스터 생성 중 부하 분산기 노드에 부하 분산기를 설치합니다. manual 모드에서 클러스터는 수동으로 구성된 외부 부하 분산기를 사용합니다. 자세한 내용은 부하 분산기 개요를 참조하세요.
허용되는 값: bundled | manual
클러스터 리소스
필수
변경 불가
loadBalancer.type
선택사항. 문자열. 사용된 번들 부하 분산의 유형, 즉 Layer 2 또는 경계 게이트웨이 프로토콜(BGP)을 지정합니다. 표준 번들 부하 분산을 사용하는 경우 type을 layer2로 설정합니다. BGP를 사용한 번들 부하 분산을 사용하는 경우 type를 bgp로 설정합니다. type을 설정하지 않으면 기본값은 layer2입니다.
허용되는 값: layer2 | bgp
클러스터 리소스
선택사항
변경 불가
loadBalancer.nodePoolSpec
선택사항. 이 섹션을 사용하여 부하 분산기 노드 풀을 구성합니다. 지정한 노드는 Kubernetes 클러스터의 일부이며 일반 워크로드와 부하 분산기를 실행합니다. 노드 풀을 지정하지 않으면 컨트롤 플레인 노드가 부하 분산에 사용됩니다. 이 섹션은 부하 분산 모드가 bundled로 설정된 경우에만 적용됩니다.
워크로드가 부하 분산기 노드 풀의 노드에서 실행되지 않도록 하려면 노드에 다음 taint를 추가합니다.
node-role.kubernetes.io/load-balancer:NoSchedule
Google Distributed Cloud는 부하 분산에 필요한 포드에 이 taint에 대한 톨러레이션(toleration)을 추가합니다.
클러스터 리소스
선택사항
변경 가능
loadBalancer.nodePoolSpec.nodes
이 섹션에는 부하 분산기 노드 풀에 있는 노드의 IP 주소 배열이 포함됩니다.
클러스터 리소스
선택사항
변경 가능
loadBalancer.nodePoolSpec.nodes.address
선택사항. 문자열(IPv4 주소). 노드의 IP 주소입니다. 부하 분산기 노드 풀의 노드는 워크로드를 실행할 수 있지만 워커 노드 풀의 노드와 별개입니다. 지정된 클러스터 노드를 2개 이상의 노드 풀에 포함할 수 없습니다. 겹치는 노드 IP 주소는 클러스터 생성 및 기타 클러스터 작업을 차단합니다.
클러스터 리소스
선택사항
변경 가능
loadBalancer.nodePoolSpec.kubeletConfig
선택사항.
이 섹션에는 컨트롤 플레인 노드 풀의 모든 노드에서 kubelet을 구성하는 필드가 포함되어 있습니다.
선택사항. 정수(음수 아님). 요청 급증을 처리하기 위해 처리 큐에 추가할 수 있는 이미지 pull 요청의 최대 개수를 지정합니다. pull이 시작되는 즉시 큐에 새 요청을 추가할 수 있습니다. 기본값은 10입니다. 이 필드는 registryBurst kubelet 구성(v1beta1) 옵션에 해당합니다.
registryPullQPS 값이 이 설정보다 우선 적용됩니다. 예를 들어 기본 설정에서는 최대 10개의 동시 쿼리 버스트가 허용되지만 기본 속도인 초당 쿼리 5개로 처리되어야 합니다. 이 버스트 동작은 registryPullQPS가 0보다 큰 경우에만 사용됩니다.
클러스터를 생성, 업데이트 또는 업그레이드할 때마다 이 필드를 설정할 수 있으며 클러스터를 업그레이드해도 설정이 유지됩니다. 자세한 내용은 kubelet 이미지 pull 설정 구성을 참조하세요.
선택사항. 정수(음수 아님). 컨테이너 레지스트리 이미지 pull 쿼리의 처리 속도를 초당 쿼리 수(QPS) 단위로 지정합니다.
registryPullQPS가 0보다 큰 값으로 설정되면 쿼리 속도가 해당하는 초당 쿼리 수로 제한됩니다. registryPullQPS가 0으로 설정된 경우 쿼리 속도에 제한이 없습니다. 기본값은 5입니다.
선택사항. 불리언(true|false). 이 필드는 컨테이너 레지스트리 pull이 동시에 처리되는지 아니면 한 번에 하나씩 처리되는지를 지정합니다. 기본값인 true는 pull을 한 번에 하나씩 처리하도록 지정합니다. false로 설정하면 kubelet이 이미지를 동시에 가져옵니다. 이 필드는 serializeImagePulls kubelet 구성(v1beta1) 옵션에 해당합니다.
클러스터를 생성, 업데이트 또는 업그레이드할 때마다 이 필드를 설정할 수 있으며 클러스터를 업그레이드해도 설정이 유지됩니다. 자세한 내용은 kubelet 이미지 pull 설정 구성을 참조하세요.
클러스터 리소스
선택사항
변경 가능
loadBalancer.ports.controlPlaneLBPort
숫자. Kubernetes 컨트롤 플레인(Kubernetes API 서버)으로 전송되는 트래픽에 사용되는 목적지 포트입니다.
선택사항. 문자열(IPv4 주소). 인그레스 트래픽을 위해 부하 분산기에서 구성하도록 선택한 IP 주소입니다.
클러스터 리소스
선택사항
변경 불가
loadBalancer.localASN
선택사항. 문자열. 생성 중인 클러스터의 자율 시스템 번호(ASN)를 지정합니다. 이 필드는 경계 게이트웨이 프로토콜(BGP)을 사용하는 번들 부하 분산 솔루션을 설정할 때 사용됩니다.
자세한 내용은 BGP로 번들 부하 분산기 구성을 참조하세요.
클러스터 리소스
선택사항
변경 가능
loadBalancer.bgpPeers
선택사항. 객체(매핑 목록). 이 섹션에서는 클러스터 외부에 있는 로컬 네트워크에서 하나 이상의 경계 게이트웨이 프로토콜(BGP) 피어를 지정합니다. BGP를 사용하는 번들 부하 분산 솔루션의 컨트롤 플레인 부하 분산 부분을 설정할 때 BGP 피어를 지정합니다. 각 동종 앱은 IP 주소, 자율 시스템 번호(ASN), 컨트롤 플레인 노드에 대한 하나 이상의 IP 주소 목록(선택사항)으로 구성된 매핑으로 지정됩니다. 클러스터를 만든 후에는 컨트롤 플레인 부하 분산의 BGP 피어링 구성을 업데이트할 수 없습니다.
선택사항. 문자열(IPv4 주소). 로컬 네트워크의 외부 피어링 기기 IP 주소입니다.
자세한 내용은 BGP로 번들 부하 분산기 구성을 참조하세요.
클러스터 리소스
선택사항
변경 가능
loadBalancer.bgpPeers.asn
선택사항. 문자열. 외부 동종 앱 기기가 포함된 네트워크의 자율 시스템 번호(ASN)입니다. BGP를 사용하는 번들 부하 분산 솔루션을 설정할 때 컨트롤 플레인 부하 분산에 설정하는 모든 BGP 동종 앱에 ASN을 지정합니다.
자세한 내용은 BGP로 번들 부하 분산기 구성을 참조하세요.
클러스터 리소스
선택사항
변경 가능
loadBalancer.bgpPeers.controlPlaneNodes
선택사항. IP(IPv4) 주소의 배열. BGP를 사용하는 번들 부하 분산 솔루션을 설정할 때 외부 BGP 동종 앱에 연결되는 컨트롤 플레인 노드의 IP 주소 하나 이상입니다. 컨트롤 플레인 노드를 지정하지 않으면 모든 컨트롤 플레인 노드가 외부 동종 앱에 연결됩니다. IP 주소를 하나 이상 지정하면 지정된 노드만 피어링 세션에 참가합니다.
자세한 내용은 BGP로 번들 부하 분산기 구성을 참조하세요.
클러스터 리소스
선택사항
변경 가능
maintenanceBlocks.cidrBlocks
선택사항. 단일 IPv4 주소 또는 IPv4 주소 범위. 유지보수 모드로 설정할 노드 머신의 IP 주소를 지정합니다. 자세한 내용은 노드를 유지보수 모드로 전환을 참조하세요.
예를 들면 다음과 같습니다.
maintenanceBlocks:
cidrBlocks:
- 192.168.1.200 # Single machine
- 192.168.1.100-192.168.1.109 # Ten machines
클러스터 리소스
선택사항
변경 가능
nodeAccess.loginUser
선택사항. 문자열. 클러스터의 노드 머신에 대한 비밀번호가 없는 SUDO 기능 액세스에 사용할 루트가 아닌 사용자 이름을 지정합니다. 지정된 사용자에 대해 SSH 키 sshPrivateKeyPath가 작동해야 합니다. 클러스터 만들기 및 업데이트 작업은 노드 머신에 지정된 사용자 및 SSH 키로 액세스할 수 있는지 확인합니다.
클러스터 리소스
선택사항
변경 가능
osEnvironmentConfig.addPackageRepo
선택사항. 불리언(true | false). 기본 Docker apt 저장소 대신 자체 패키지 저장소 서버를 사용할지 여부를 지정합니다. 자체 패키지 저장소를 사용하려면 addPackageRepo를 false로 설정합니다. 이 기능을 사용하면 배포에서 각 베어메탈 머신에 패키지 저장소 추가를 건너뛸 수 있습니다. 자세한 내용은 비공개 패키지 저장소 서버 사용을 참조하세요.
클러스터 리소스
선택사항
변경 불가
nodeConfig
이 섹션에는 클러스터 노드 구성에 대한 설정이 포함되어 있습니다.
클러스터 리소스
선택사항
변경 가능(업그레이드만 해당)
nodeConfig.containerRuntime(지원 중단됨)
지원이 중단되었습니다. 출시 버전 1.13.0부터 Google Distributed Cloud는 컨테이너 런타임으로만 containerd를 지원합니다. containerRuntime 필드는 지원 중단되었으며 생성된 클러스터 구성 파일에서 삭제되었습니다. Google Distributed Cloud 버전 1.13.0 이상에서 클러스터 구성 파일에 이 필드가 포함된 경우에는 값이 containerd여야 합니다.
클러스터 리소스
선택사항
변경 가능(업그레이드만 해당)
nodeConfig.podDensity
이 섹션에서는 포드 밀도 구성을 지정합니다.
클러스터 리소스
선택사항
변경 불가
nodeConfig.podDensity.maxPodsPerNode
선택사항. 정수. 단일 노드에서 실행할 수 있는 최대 포드 수를 지정합니다. 자체 관리형 클러스터의 경우 maxPodsPerNode에 허용되는 값은 고가용성 (HA)클러스터의 경우 32~250, 비 HA 클러스터의 경우 64~250입니다. 사용자 클러스터의 경우 maxPodsPerNode에 허용되는 값은 32~250입니다. 지정하지 않으면 기본값은 110입니다. 클러스터가 생성된 후에는 이 값을 업데이트할 수 없습니다.
Kubernetes는 각 포드가 고유 IP 주소를 가질 수 있도록 각 노드에 클래스 없는 도메인 간 라우팅(CIDR) 블록을 할당합니다. CIDR 블록의 크기는 노드당 최대 포드 수에 해당합니다.
노드당 최대 포드 수를 설정하는 방법에 대한 자세한 내용은 포드 네트워킹을 참조하세요.
노드 수준의 비공개 레지스트리 구성 지원은 버전 1.29 클러스터에 대해서만 미리보기 상태로 제공됩니다.
클러스터 리소스
선택사항
변경 가능
nodePoolUpgradeStrategy
선택사항. 이 섹션에는 클러스터의 워커 노드 풀에 대한 업그레이드 전략을 구성하는 설정이 포함되어 있습니다. 자세한 내용은 동시 업그레이드를 참조하세요.
클러스터 리소스
선택사항
변경 가능
nodePoolUpgradeStrategy.concurrentNodePools
선택사항. 불리언(0 또는 1). 기본값: 1.
이 필드는 클러스터의 모든 워커 노드 풀을 동시에 업그레이드할지 여부를 지정합니다. 기본 설정(1)에서는 한 번에 하나씩 순차적으로 업그레이드됩니다. concurrentNodePools를 0으로 설정하면 클러스터의 모든 워커 노드 풀이 동시에 업그레이드됩니다.
이 섹션에서는 주기적인 상태 점검을 위한 구성 정보를 제공합니다. 클러스터 리소스에서 주기적인 상태 점검에 사용할 수 있는 유일한 설정은 enable 필드입니다. 자세한 내용은 주기적인 상태 점검을 참조하세요.
클러스터 리소스
선택사항
변경 가능
periodicHealthCheck.enable
선택사항. 불리언(true|false). 클러스터의 주기적인 상태 점검을 사용 설정 또는 사용 중지합니다. 주기적인 상태 점검은 기본적으로 모든 클러스터에서 사용 설정됩니다. periodicHealthCheck.enable 필드를 false로 설정하면 클러스터의 주기적인 상태 점검을 사용 중지할 수 있습니다.
자세한 내용은 주기적인 상태 점검 사용 중지를 참조하세요.
클러스터 리소스
선택사항
변경 가능
profile
선택사항. 문자열. 독립형 클러스터에서 profile을 edge로 설정하면 클러스터의 리소스 소비를 최소화합니다. 에지 프로필은 독립형 클러스터에만 제공됩니다.
이 프로필에서는 시스템 리소스 요구사항이 줄어들었으며 리소스 제약조건이 높은 에지 기기에 권장됩니다.
에지 프로필 관련 하드웨어 요구사항은 에지 프로필을 사용하는 독립형 클러스터의 리소스 요구사항을 참조하세요.
클러스터 리소스
선택사항
변경 불가
proxy
네트워크가 프록시 서버 뒤에 있는 경우 이 섹션을 입력합니다.
그렇지 않으면 이 섹션을 삭제하세요.
클러스터 리소스
선택사항
변경 가능
proxy.noProxy
문자열. 쉼표로 구분된 IP 주소, IP 주소 범위, 호스트 이름, 프록시 서버를 거치지 않아야 하는 도메인 이름의 목록입니다. Google Distributed Cloud가 이러한 주소, 호스트 또는 도메인 중 하나에 요청을 보내면 요청이 직접 전송됩니다.
클러스터 리소스
선택사항
변경 불가
proxy.url
문자열. 프록시 서버의 HTTP 주소입니다. 포트 번호가 스키마의 기본 포트와 동일하더라도 포함합니다.
선택사항. 불리언(true|false). 클러스터 전체 seccomp를 사용 설정 또는 사용 중지합니다. 이 필드를 사용 중지하면 클러스터 구성 파일에 seccomp 프로필이 없는 컨테이너가 제한되지 않고 실행됩니다. 이 필드가 사용 설정되면 컨테이너 런타임의 기본 seccomp 프로필을 사용하여 동일한 컨테이너가 보호됩니다. 이 기능은 기본적으로 사용하도록 설정되어 있습니다.
클러스터를 만든 후에는 업그레이드 중에만 이 필드를 전환할 수 있습니다.
자세한 내용은 seccomp를 사용하여 컨테이너 제한을 참조하세요.
클러스터 리소스
선택사항
변경 가능(업그레이드만 해당)
clusterSecurity.enableRootlessContainers
선택사항. 불리언(true|false). 루트가 없는 베어메탈 시스템 컨테이너를 사용 설정 또는 사용 중지합니다. 이 필드가 사용 설정되면 베어메탈 시스템 컨테이너가 루트가 아닌 사용자(2000~5000 범위의 사용자 ID)로 실행됩니다. 사용 중지되면 베어메탈 시스템 컨테이너가 루트 사용자로 실행됩니다. 기본적으로 이 기능은 사용 설정되어 있습니다. 컨테이너를 루트 사용자로 실행하면 보안 위험이 발생할 수 있으므로 이 기능을 사용 중지하는 것은 권장되지 않습니다. 클러스터를 만든 후에는 업그레이드 중에만 이 필드를 전환할 수 있습니다. 자세한 내용은 루트 사용자로 컨테이너 실행 안 함을 참조하세요.
선택사항. gcpAccounts 필드는 Kubernetes 역할 기반 액세스 제어(RBAC) 역할 clusterrole/cluster-admin이 부여된 계정 목록을 지정합니다. 이 역할을 가진 계정은 모든 네임스페이스의 클러스터에 있는 모든 리소스에 대한 전체 액세스 권한을 갖습니다. 이 필드는 지정된 계정이 Connect 게이트웨이를 사용하여 클러스터에 대해 kubectl 명령어를 실행하도록 허용하는 RBAC 정책도 구성합니다. 특히 GKE 및 온프레미스 클러스터가 모두 포함된 하이브리드 환경에서 관리할 클러스터가 여러 개 있는 경우에 편리합니다.
이 필드는 계정 이름의 배열을 사용합니다. 사용자 계정 및 서비스 계정이 지원됩니다. 사용자의 경우 Google Cloud 계정 이메일 주소를 지정합니다. 서비스 계정의 경우 SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com 형식으로 이메일 주소를 지정합니다.
예를 들면 다음과 같습니다.
계정을 추가하기 위해 클러스터를 업데이트할 때 업데이트 명령어가 업데이트에서 지정한 대로 목록을 덮어쓰게 되므로 목록에 모든 계정(기존 계정 및 새 계정 모두)을 포함해야 합니다.
이 필드는 워크로드를 실행할 수 있는 클러스터에만 적용됩니다. 예를 들어 관리자 클러스터에 gcpAccounts를 지정할 수 없습니다.
클러스터 리소스
선택사항
변경 가능
clusterSecurity.startUIDRangeRootlessContainers
선택사항. 정수. 기본값은 2000입니다. Google Distributed Cloud의 시스템 컨테이너는 클러스터를 설치하고 관리하는 데 도움이 됩니다. 이러한 컨테이너에서 사용하는 사용자 ID(UID) 및 그룹 ID(GID)는 클러스터 사양의 startUIDRangeRootlessContainers 필드에서 제어될 수 있습니다. 시스템 컨테이너는 기본적으로 2000~4999 범위를 제공하는 startUIDRangeRootlessContainers~startUIDRangeRootlessContainers + 2999 범위의 UID 및 GID를 사용합니다. startUIDRangeRootlessContainers를 업데이트할 때 시스템 컨테이너에서 사용하는 UID 및 GID 공간이 사용자 워크로드에 할당된 것과 겹치지 않도록 보장하는 값을 선택합니다. 업그레이드 중에만 startUIDRangeRootlessContainers 값을 변경할 수 있습니다.
필수. 문자열. 마운트된 디스크를 검색할 수 있는 호스트 머신 경로를 지정하려면 path 필드를 사용합니다. 각 마운트마다 로컬 PersistentVolume(PV)이 생성됩니다. 기본 경로는 /mnt/localpv-share입니다. 노드 마운트 구성에 대한 자세한 내용은 LVP 노드 마운트 구성을 참조하세요.
클러스터 리소스
필수
변경 불가
storage
이 섹션에는 클러스터 스토리지에 대한 설정이 포함되어 있습니다.
클러스터 리소스
필수
변경 불가
storage.lvpNodeMounts
이 섹션에서는 마운트된 디스크가 지원하는 로컬 영구 볼륨의 구성(경로)을 지정합니다. 직접 디스크를 포맷하고 마운트해야 합니다. 이 작업은 클러스터를 만들기 전이나 후에 수행할 수 있습니다. 자세한 내용은 LVP 노드 마운트를 참조하세요.
클러스터 리소스
필수
변경 불가
storage.lvpShare
이 섹션에서는 공유 파일 시스템의 하위 디렉터리가 지원하는 로컬 영구 볼륨의 구성을 지정합니다. 이러한 하위 디렉터리는 클러스터 생성 중에 자동으로 생성됩니다.
자세한 내용은 LVP 공유를 참조하세요.
클러스터 리소스
필수
변경 불가
storage.lvpShare.path
필수. 문자열. 하위 디렉터리를 만들 수 있는 호스트 머신 경로를 지정하려면 path 필드를 사용합니다. 각 하위 디렉터리에 대해 로컬 PersistentVolume(PV)이 생성됩니다. LVP 공유를 구성하는 방법은 LVP 공유 구성을 참조하세요.
클러스터 리소스
필수
변경 불가
storage.lvpShare.numPVUnderSharedPath
필수. 문자열. lvpShare.path 아래에 만들 하위 디렉터리의 수를 지정합니다. 기본값은 5입니다. LVP 공유를 구성하는 방법은 LVP 공유 구성을 참조하세요.
클러스터 리소스
필수
변경 불가
storage.lvpShare.storageClassName
필수. 문자열. 영구 볼륨을 만드는 데 사용할 StorageClass를 지정합니다. StorageClass는 클러스터 생성 중에 생성됩니다. 기본값은 local-shared입니다. LVP 공유를 구성하는 방법은 LVP 공유 구성을 참조하세요.
클러스터 리소스
선택사항
변경 불가
type
필수. 문자열. 클러스터 유형을 지정합니다. 표준 배포 모델은 단일 관리자 클러스터와 관리자 클러스터에서 관리하는 하나 이상의 사용자 클러스터로 구성됩니다.
Google Distributed Cloud는 다음 유형의 클러스터를 지원합니다.
관리자 - 사용자 클러스터를 관리하는 데 사용되는 클러스터
사용자 - 워크로드를 실행하는 데 사용되는 클러스터입니다.
하이브리드 - 사용자 클러스터도 관리할 수 있는 관리자와 워크로드에 대한 단일 클러스터입니다.
독립형 - 사용자가 직접 관리할 수 있으며 워크로드를 실행할 수 있지만 다른 사용자 클러스터를 만들거나 관리할 수 없는 단일 클러스터입니다.
클러스터 유형은 클러스터를 만들 때 지정되며 업데이트 또는 업그레이드를 위해 변경할 수 없습니다. 클러스터를 만드는 방법에 대한 자세한 내용은 클러스터 만들기: 개요를 참조하세요.
허용되는 값: admin | user | hybrid | standalone
기존 클러스터의 값은 수정할 수 없습니다.
클러스터 리소스
필수
변경 불가
name
필수. 문자열. 일반적으로 네임스페이스 이름은 cluster-CLUSTER_NAME 패턴을 사용하지만 Google Distributed Cloud 출시 버전 1.7.2 이후 cluster- 프리픽스가 반드시 필요하지는 않습니다.
기존 클러스터의 값은 수정할 수 없습니다.
네임스페이스 리소스
필수
변경 불가
clusterName
문자열. 필수. 노드 풀을 추가할 클러스터의 이름입니다. 연결된 클러스터와 동일한 네임스페이스에 노드 풀 리소스를 만들고 이 필드의 클러스터 이름을 참조합니다. 자세한 내용은 클러스터의 노드 풀 추가 및 삭제를 참조하세요.
선택사항. 정수(음수 아님). 요청 급증을 처리하기 위해 처리 큐에 추가할 수 있는 이미지 pull 요청의 최대 수량을 지정합니다. pull이 시작되는 즉시 큐에 새 요청을 추가할 수 있습니다. 기본값은 10입니다. 이 필드는 registryBurst kubelet 구성(v1beta1) 옵션에 해당합니다.
registryPullQPS 값이 이 설정보다 우선 적용됩니다. 예를 들어 기본 설정에서는 최대 10개의 동시 쿼리 버스트가 허용되지만 기본 속도인 초당 쿼리 5개로 처리되어야 합니다. 이 버스트 동작은 registryPullQPS가 0보다 큰 경우에만 사용됩니다.
클러스터를 생성, 업데이트 또는 업그레이드할 때마다 이 필드를 설정할 수 있으며 클러스터를 업그레이드해도 설정이 유지됩니다. 자세한 내용은 kubelet 이미지 pull 설정 구성을 참조하세요.
NodePool 리소스
선택사항
변경 가능
kubeletConfig.registryPullQPS
선택사항. 정수(음수 아님). 컨테이너 레지스트리 이미지 pull 쿼리의 처리 속도를 초당 쿼리 수(QPS) 단위로 지정합니다.
registryPullQPS가 0보다 큰 값으로 설정되면 쿼리 속도가 해당하는 초당 쿼리 수로 제한됩니다. registryPullQPS가 0으로 설정된 경우 쿼리 속도에 제한이 없습니다. 기본값은 5입니다.
클러스터를 생성, 업데이트 또는 업그레이드할 때마다 이 필드를 설정할 수 있으며 클러스터를 업그레이드해도 설정이 유지됩니다. 자세한 내용은 kubelet 이미지 pull 설정 구성을 참조하세요.
NodePool 리소스
선택사항
변경 가능
kubeletConfig.serializeImagePulls
선택사항. 불리언(true|false). 이 필드는 컨테이너 레지스트리 pull이 동시에 처리되는지 아니면 한 번에 하나씩 처리되는지를 지정합니다. 기본값인 true는 pull을 한 번에 하나씩 처리하도록 지정합니다. false로 설정하면 kubelet이 이미지를 동시에 가져옵니다. 이 필드는 serializeImagePulls kubelet 구성(v1beta1) 옵션에 해당합니다.
클러스터를 생성, 업데이트 또는 업그레이드할 때마다 이 필드를 설정할 수 있으며 클러스터를 업그레이드해도 설정이 유지됩니다. 자세한 내용은 kubelet 이미지 pull 설정 구성을 참조하세요.
NodePool 리소스
선택사항
변경 가능
taints
선택사항. 객체. 노드 taint를 사용하면 스케줄러가 특정 포드에 대한 노드 사용을 방지하도록 노드에 표시를 할 수 있습니다. taint는 키-값 쌍과 관련 효과로 구성됩니다. key 및 value 값은 taint를 식별하는 데 사용하는 문자열이며 effect 값은 노드에 대해 포드가 처리되는 방법을 지정합니다. taints 객체에는 여러 개의 taint가 있을 수 있습니다.
effect 필드는 다음 값 중 하나를 사용할 수 있습니다.
NoSchedule - 일치하는 톨러레이션(toleration)이 없으면 포드를 노드에 예약할 수 없습니다.
PreferNoSchedule - 시스템이 노드에서 taint를 허용하지 않는 포드를 배치하지 않지만 필수는 아닙니다.
NoExecute - taint를 허용하지 않는 포드는 즉시 제거되며 taint를 허용하는 포드는 제거되지 않습니다.
Google Distributed Cloud의 경우 baremetal.cluster.gke.io/label-taint-no-sync 주석이 클러스터에 적용되지 않으면 taint가 노드 풀의 노드에 맞게 조정됩니다. taint에 대한 자세한 내용은 taint 및 톨러레이션(toleration)을 참조하세요.
예를 들면 다음과 같습니다.
taints:
- key: status
value: testpool
effect: NoSchedule
NodePool 리소스
선택사항
변경 가능
labels
선택사항. 매핑(키-값 쌍).
baremetal.cluster.gke.io/label-taint-no-sync 주석이 클러스터에 적용되지 않으면 라벨이 노드 풀의 노드에 맞게 조정됩니다. 라벨에 대한 자세한 내용은 라벨 및 선택기를 참조하세요.
NodePool 리소스
선택사항
변경 가능
upgradeStrategy
선택사항. 이 섹션에는 워커 노드 풀의 노드에 대한 업그레이드 전략을 구성하는 설정이 포함되어 있습니다. 자세한 내용은 동시 업그레이드를 참조하세요.
참고: 컨트롤 플레인 또는 부하 분산기 노드 풀에는 이 섹션을 추가하지 마세요.
NodePool 리소스
선택사항
변경 가능
upgradeStrategy.parallelUpgrade
선택사항. 이 섹션에는 워커 노드 풀의 동시 노드 업그레이드를 구성하는 설정이 포함되어 있습니다. 일반적인 기본 클러스터 업그레이드에서는 각 클러스터 노드가 한 번에 하나씩 순차적으로 업그레이드됩니다. 클러스터를 업그레이드할 때 여러 노드가 동시에 업그레이드되도록 워커 노드 풀을 구성할 수 있습니다. 노드를 동시에 업그레이드하면 특히 수백 개의 노드가 포함된 클러스터의 경우 클러스터 업그레이드 속도가 크게 빨라집니다.
워커 노드 풀의 경우 동시에 업그레이드할 노드 수를 지정하고 업그레이드 진행 중에 워크로드를 실행할 수 있는 노드 수의 최소 기준점을 설정할 수 있습니다.
선택사항. 정수(양수). 기본값: 1. 최대: 15.
기본 설정(1)에서는 노드가 한 번에 하나씩 순차적으로 업그레이드됩니다. concurrentNodes를 1보다 큰 숫자로 설정하면 이 필드는 동시에 업그레이드할 노드 수를 지정합니다. concurrentNodes의 제약조건은 다음과 같습니다.
이 값은 노드 풀에 있는 노드 수의 50% 또는 고정된 숫자인 15 중 더 작은 값을 초과할 수 없습니다. 예를 들어 노드 풀에 노드가 20개 있으면 10보다 큰 값을 지정할 수 없습니다. 노드 풀에 노드가 100개 있으면 지정 가능한 최댓값은 15입니다.
이 필드를 minimumAvailableNodes 필드와 함께 사용할 경우 결합된 값은 노드 풀의 총 노드 수를 초과할 수 없습니다. 예를 들어 노드 풀에 노드가 20개 있고 minimumAvailableNodes가 18로 설정된 경우 concurrentNodes는 2를 초과할 수 없습니다.
동시 업그레이드에는 포드 중단 예산(PDB)이 적용되지 않습니다.
워크로드가 중단에 민감한 경우 업그레이드 진행 중에도 워크로드를 실행할 수 있는 일정량의 노드가 남아있도록 minimumAvailableNodes를 지정하는 것이 좋습니다. 자세한 내용은 동시 업그레이드를 참조하세요.
선택사항. 정수(음수 아님). 기본값: concurrentNodes에 따라 다릅니다. minimumAvailableNodes의 기본값에 대한 자세한 내용은 동시 업그레이드 기본값을 참조하세요. minimumAvailableNodes를 사용하면 업그레이드 진행 중에 노드 풀에서 가용성이 유지되어야 하는 노드 수량을 지정할 수 있습니다. 업그레이드되고 있는 노드는 사용 불가능으로 간주됩니다. 다음 조건에 하나라도 해당하는 노드도 사용 불가능으로 간주됩니다.
노드가 유지보수 모드임
노드 조정 중
노드가 업그레이드 도중에 멈춤
이 필드를 concurrentNodes 필드와 함께 사용할 경우 결합된 값은 노드 풀의 총 노드 수를 초과할 수 없습니다. 예를 들어 노드 풀에 노드가 20개 있고 concurrentNodes가 10으로 설정된 경우 minimumAvailableNodes는 10을 초과할 수 없습니다.
minimumAvailableNodes 값이 높으면 포드 예약에 대한 용량 문제가 최소화되므로 클러스터 업그레이드 중에 워크로드를 보호하는 데 도움이 됩니다. 하지만 minimumAvailableNodes 값이 높으면 노드를 사용할 수 있을 때까지 대기하느라 업그레이드가 멈출 위험이 커집니다. 자세한 내용은 동시 업그레이드를 참조하세요.
문자열. 레지스트리 서버 IP 주소와 포트 번호로 구성된 미러의 엔드포인트입니다. 원하는 경우 레지스트리 서버에서 루트 네임스페이스 대신 자체 네임스페이스를 사용할 수 있습니다. 네임스페이스가 없으면 엔드포인트 형식은 REGISTRY_IP:PORT입니다. 네임스페이스를 사용할 경우 엔드포인트 형식은 REGISTRY_IP:PORT/v2/NAMESPACE입니다.
네임스페이스 지정 시 /v2가 필요합니다.
레지스트리 미러를 지정할 때 endpoint 필드가 필요합니다. 여러 미러/엔드포인트를 지정할 수 있습니다.
선택사항. 문자열. 레지스트리 서버에 비공개 TLS 인증서가 사용되는 경우 CA 인증서 파일(서버 루트 CA)의 경로입니다. 로컬 레지스트리에 비공개 TLS 인증서가 필요하지 않으면 이 필드를 생략할 수 있습니다.
레지스트리 미러
선택사항
변경 가능
registryMirrors.pullCredentialConfigPath
선택사항. 문자열. Docker CLI 구성 파일config.json의 경로입니다. Docker는 구성 파일에 인증 설정을 저장합니다. 이 필드는 레지스트리 미러를 사용하는 경우에만 적용됩니다. 레지스트리 서버에 인증에 대한 Docker 구성 파일이 필요하지 않으면 이 필드를 생략할 수 있습니다.
선택사항. 지정된 레지스트리 미러(endpoint)에 대해 로컬로 미러링된 호스트의 도메인 이름 배열입니다. 컨테이너 런타임에서 지정된 호스트의 이미지에 대해 pull 요청이 발생하면 로컬 레지스트리 미러를 먼저 확인합니다. 자세한 내용은 레지스트리 미러에서 클러스터 만들기를 참조하세요.
Google Distributed Cloud에 대해 bmctl로 생성된 클러스터 구성 파일에는 로컬 파일 시스템의 사용자 인증 정보 및 키 파일에 대한 경로를 지정하는 필드가 있습니다. 이러한 사용자 인증 정보 및 키는 클러스터를 서로 연결하고 Google Cloud 프로젝트에 연결하는 데 필요합니다.
IPv4 CIDR 범위 구성을 정의합니다. ClusterCidrConfig 리소스에 대해 하나 이상의 ipv4 또는 ipv6 필드를 제공해야 합니다.
ClusterCIDRConfig 리소스
선택사항
변경 불가
ipv4.cidr
문자열. IPv4 노드 CIDR 블록을 설정합니다. 노드에는 각 계열의 범위 하나만 있을 수 있습니다. 이 CIDR 블록은 Cluster 리소스에 설명된 포드 CIDR과 일치해야 합니다.
예를 들면 다음과 같습니다.
ipv4:
cidr: "10.1.0.0/16"
ClusterCIDRConfig 리소스
필수
변경 불가
ipv4.perNodeMaskSize
정수. 노드 IPv4 CIDR 블록의 마스크 크기를 정의합니다. 예를 들어 값 24는 넷마스크 /24로 변환됩니다. 노드의 CIDR 블록 넷마스크가 kubelet의 --max-pods 플래그에 정의된 kubelet이 예약할 수 있는 최대 포드 수보다 큰지 확인합니다.
ClusterCIDRConfig 리소스
필수
변경 불가
ipv6
IPv6 CIDR 범위 구성을 정의합니다. ClusterCidrConfig 리소스에 대해 하나 이상의 ipv4 또는 ipv6 필드를 제공해야 합니다.
ClusterCIDRConfig 리소스
선택사항
변경 불가
ipv6.cidr
문자열. IPv6 노드 CIDR 블록을 설정합니다. 노드에는 각 계열의 범위 하나만 있을 수 있습니다.
예를 들면 다음과 같습니다.
ipv6:
cidr: "2620:0:1000:2631:3:10:3:0/112"
ClusterCIDRConfig 리소스
필수
변경 불가
ipv6.perNodeMaskSize
정수. 노드 IPv6 CIDR 블록의 마스크 크기를 정의합니다. 예를 들어 값 120는 넷마스크 /120로 변환됩니다. 노드의 CIDR 블록 넷마스크가 kubelet의 --max-pods 플래그에 정의된 kubelet이 예약할 수 있는 최대 포드 수보다 큰지 확인합니다.
ClusterCIDRConfig 리소스
필수
변경 불가
nodeSelector.matchLabels
CIDR 구성을 적용할 노드를 정의합니다. 빈 노드 선택기는 모든 노드에 적용되는 기본값으로 작동합니다.
[[["이해하기 쉬움","easyToUnderstand","thumb-up"],["문제가 해결됨","solvedMyProblem","thumb-up"],["기타","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["번역 문제","translationIssue","thumb-down"],["기타","otherDown","thumb-down"]],["최종 업데이트: 2024-07-02(UTC)"],[],[]]