노드 풀의 포드 밀도 재정의

이 문서에서는 클러스터 전체 설정을 재정의하여 클러스터의 개별 노드 풀에 포드 밀도를 지정하는 방법을 설명합니다. 노드 수준 구성은 일반적으로 전체 클러스터에 적용되지만 특정 노드 풀에서 포드 밀도를 구성할 수 있습니다. 특정 노드 풀의 포드 밀도를 재정의하면 리소스 효율성을 개선할 수 있습니다. 이 기능은 GPU가 있는 노드와 같이 특정 워크로드 요구사항이나 효율적인 IP 주소 할당으로 인해 노드당 최대 포드에 다른 값이 필요한 특수 노드 풀에 유용합니다.

클러스터 전체 포드 밀도 설정을 재정의하는 기능은 버전 1.33 이상의 클러스터에서 사용할 수 있습니다.

시작하기 전에

노드 풀의 포드 밀도를 지정하는 기능은 다음 네트워크 구성 중 하나가 있는 클러스터에서만 사용할 수 있습니다.

노드 풀의 포드 밀도 구성

NodePool 사양 내에서 포드 밀도를 구성하여 클러스터 수준 설정을 재정의합니다. 이 구성은 선택사항입니다. 시스템은 노드당 최대 포드 수 매개변수에서 노드에 할당된 CIDR 범위의 크기를 파생합니다.

maxPodsPerNode 구성은 노드 풀을 만든 후에는 변경할 수 없습니다. 시스템은 maxPodsPerNode 설정을 검증하여 노드 풀의 노드에 충분한 IP 주소가 있는지 확인합니다. 이 검증에서는 엄격한 라벨 바인딩을 사용합니다. 여기서 ClusterCIDRConfig는 노드 선택기를 사용하여 노드 풀에 바인딩됩니다. 클러스터 CR 또는 NodePool 수준에서 baremetal.cluster.gke.io/skip-pod-cidr-size-check 주석을 설정하여 이 유효성 검사를 건너뛸 수 있습니다.

  1. 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 이름으로 바꿉니다.

  2. 재정의된 포드 밀도로 노드 풀을 만듭니다.

    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: 지정된 노드 풀의 단일 노드에서 실행할 수 있는 최대 포드 수입니다.

다음 단계