이 문서에서는 클러스터 전체 설정을 재정의하여 클러스터의 개별 노드 풀에 포드 밀도를 지정하는 방법을 설명합니다. 노드 수준 구성은 일반적으로 전체 클러스터에 적용되지만 특정 노드 풀에서 포드 밀도를 구성할 수 있습니다. 특정 노드 풀의 포드 밀도를 재정의하면 리소스 효율성을 개선할 수 있습니다. 이 기능은 GPU가 있는 노드와 같이 특정 워크로드 요구사항이나 효율적인 IP 주소 할당으로 인해 노드당 최대 포드에 다른 값이 필요한 특수 노드 풀에 유용합니다.
클러스터 전체 포드 밀도 설정을 재정의하는 기능은 버전 1.33 이상의 클러스터에서 사용할 수 있습니다.
시작하기 전에
노드 풀의 포드 밀도를 지정하는 기능은 다음 네트워크 구성 중 하나가 있는 클러스터에서만 사용할 수 있습니다.
노드 풀의 포드 밀도 구성
NodePool
사양 내에서 포드 밀도를 구성하여 클러스터 수준 설정을 재정의합니다. 이 구성은 선택사항입니다. 시스템은 노드당 최대 포드 수 매개변수에서 노드에 할당된 CIDR 범위의 크기를 파생합니다.
maxPodsPerNode
구성은 노드 풀을 만든 후에는 변경할 수 없습니다. 시스템은 maxPodsPerNode
설정을 검증하여 노드 풀의 노드에 충분한 IP 주소가 있는지 확인합니다. 이 검증에서는 엄격한 라벨 바인딩을 사용합니다. 여기서 ClusterCIDRConfig
는 노드 선택기를 사용하여 노드 풀에 바인딩됩니다. 클러스터 CR 또는 NodePool 수준에서 baremetal.cluster.gke.io/skip-pod-cidr-size-check
주석을 설정하여 이 유효성 검사를 건너뛸 수 있습니다.
ClusterCIDRConfig
리소스를 만듭니다.이 리소스는 노드 선택기를 사용하여 특정 NodePool에 바인딩됩니다.
apiVersion: networking.gke.io/v1alpha1 kind: ClusterCIDRConfig metadata: name: my-nodepool-cidr-config spec: nodeSelector: matchLabels: baremetal.cluster.gke.io/node-pool: NODE_POOL_NAME # ... other CIDR config fields (e.g., podCIDR, perNodeMaskSize)
NODE_POOL_NAME
을 NodePool 이름으로 바꿉니다.재정의된 포드 밀도로 노드 풀을 만듭니다.
NodePool 정의에서
nodeConfigOverride
필드를 지정합니다. 이 필드에는podDensity
구성이 포함되어 있습니다.apiVersion: baremetal.cluster.gke.io/v1 kind: NodePool metadata: name: NODEPOOL_NAME namespace: CLUSTER_NAMESPACE spec: cluster: CLUSTER_NAME nodeConfigOverride: podDensity: maxPodsPerNode: MAX_PODS_PER_NODE # ... other NodePoolSpec fields like nodeCount, taints, labels etc. ...
다음을 바꿉니다.
NODEPOOL_NAME
: 노드당 최대 포드 값을 재정의하는 노드 풀 리소스의 이름입니다.CLUSTER_NAMESPACE
: 노드 풀이 있는 클러스터의 네임스페이스입니다.CLUSTER_NAME
: 노드 풀 설정을 재정의할 클러스터의 이름입니다.MAX_PODS_PER_NODE
: 지정된 노드 풀의 단일 노드에서 실행할 수 있는 최대 포드 수입니다.
다음 단계
- 플랫 모드와 섬(island) 모드 네트워크 모델의 차이점에 대해 알아봅니다.
- 플랫 IPv4 모드 네트워크 모델을 구현하는 방법을 알아보세요.
- IPv4/IPv6 이중 스택 네트워킹으로 클러스터를 만드는 방법을 알아보세요.
- 번들 NVIDIA GPU Operator에 대해 알아봅니다.
- 포드 CIDR 블록, 노드 수, 포드 밀도가 서로 어떤 관계를 갖는지 알아봅니다.