カスタム ネットワーク設定で v1alpha3 API を使用して TanzuKubernetesCluster をプロビジョニングするには、サンプル YAML を参照してください。

v1alpha3 の例:カスタム ネットワーク設定を使用する TKC

ネットワークは次のようにカスタマイズされています。詳細については、 v1alpha3 API の仕様を参照してください。
  • デフォルトの Antrea ではなく、Calico CNI が使用される
  • ポッドおよびサービスにデフォルト以外のサブネットが使用される
  • プロキシ サーバと TLS 証明書が宣言される
apiVersion: run.tanzu.vmware.com/v1alpha3
kind: TanzuKubernetesCluster
metadata:
  name: tkc-custom-network
  namespace: tkg2-cluster-ns
spec:
  topology:
    controlPlane:
      replicas: 3
      vmClass: guaranteed-medium
      storageClass: tkg-storage-policy
      tkr:
        reference:
          name: v1.25.7---vmware.3-fips.1-tkg.1
    nodePools:
    - name: worker
      replicas: 3
      vmClass: guaranteed-medium
      storageClass: tkg-storage-policy
      tkr:
        reference:
          name: v1.25.7---vmware.3-fips.1-tkg.1
      volumes:
      - name: containerd
        mountPath: /var/lib/containerd
        capacity:
          storage: 50Gi
      - name: kubelet
        mountPath: /var/lib/kubelet
        capacity:
          storage: 50Gi
  settings:
    storage:
      defaultClass: tkg-storage-policy
    network:
      cni:
        name: calico
      services:
        cidrBlocks: ["172.16.0.0/16"]
      pods:
        cidrBlocks: ["192.168.0.0/16"]
      serviceDomain: cluster.local
      proxy:
        httpProxy: http://<user>:<pwd>@<ip>:<port>
        httpsProxy: http://<user>:<pwd>@<ip>:<port>
        noProxy: [10.246.0.0/16,192.168.144.0/20,192.168.128.0/20]
      trust:
        additionalTrustedCAs:
          - name: CompanyInternalCA-1
            data: LS0tLS1C...LS0tCg==
          - name: CompanyInternalCA-2
            data: MTLtMT1C...MT0tPg==

TKC ポッド ネットワークのカスタマイズに関する考慮事項

クラスタ仕様の設定 spec.settings.network.pods.cidrBlocks のデフォルトは 192.168.0.0/16 です。

カスタマイズする場合、ポッドの CIDR ブロックの最小サイズは /24 です。ただし、/16 を超える pods.cidrBlocks サブネット マスクを制限する場合は注意が必要です。

TKG は、pods.cidrBlocks から取得された /24 サブネットを各クラスタ ノードに割り当てます。この割り当てを指定するには、Kubernetes Controller Manager を選択し、NodeCIDRMaskSize という名前の NodeIPAMController パラメータを指定して、クラスタ内のノード CIDR のサブネット マスク サイズを設定します。IPv4 のデフォルトのノード サブネット マスクは /24 です。

クラスタ内の各ノードは pods.cidrBlocks から /24 サブネットを取得するため、プロビジョニングするクラスタに対して制限が厳しすぎるサブネット マスク サイズを使用すると、ノードの IP アドレスが不足する可能性があります。

Antrea または Calico CNI でプロビジョニングされた Tanzu Kubernetes クラスタには、次のノード制限が適用されます。

/16 == 最大 150 ノード(ConfigMax あたり)

/17 == 最大 128 ノード

/18 == 最大 64 ノード

/19 == 最大 32 ノード

/20 == 最大 16 ノード

/21 == 最大 8 ノード

/22 == 最大 4 ノード

/23 == 最大 2 ノード

/24 == 最大 1 ノード