v1beta1 API를 사용하여 라우팅 가능한 포드 네트워크가 있는 클러스터를 생성할 수 있습니다. 이 작업은 기본 클러스터를 AntreaConfigVSphereCPIConfig에 대한 사용자 지정 구성으로 재정의하여 수행합니다.

v1beta1 API를 사용한 라우팅 가능한 포드 네트워킹 정보

다음 예시 YAML은 v1beta1 API를 사용하여 Antrea RoutablePod 기능을 사용하도록 설정된 클러스터를 프로비저닝하는 방법을 보여줍니다. 이 예시는 v1beta1 예시: 기본 클러스터에 기반합니다.

RoutablePod 기능을 사용하도록 설정하려면 클러스터에 특수 구성이 포함된 AntreaConfigVSphereCPIConfig가 필요합니다.

AntreaConfigtrafficEncapMode: noEncapnoSNAT: true를 설정해야 합니다.

VSphereCPIConfigantreaNSXPodRoutingEnabled: true, mode: vsphereParavirtualCPI 및 다음을 설정해야 합니다.
tlsCipherSuites: TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384

AntreaConfig의 이름은 <cluster-name>-antrea-package 형식이어야 합니다. VSphereCPIConfig의 이름은 <cluster-name>-vsphere-cpi-package 형식이어야 합니다.

구성 파일이 생성되면 구성 파일을 참조하는 클러스터 규격 개체를 생성합니다. 클러스터를 생성하는 동안 구성 파일은 클러스터를 프로비저닝하고 기본 구성을 덮어쓰는 데 사용됩니다.

라우팅 가능한 포드 네트워크 생성: 감독자 구성

라우팅 가능한 포드 네트워크를 생성하려면 감독자 및 TKG 클러스터에 대한 구성이 필요합니다.
참고: 라우팅 가능한 포드 네트워킹을 사용하려면 NSX로 감독자를 구성해야 합니다. VDS 네트워킹에는 라우팅 가능한 포드를 사용할 수 없습니다.
감독자에서 라우팅 가능한 포드 네트워크를 구성하려면 다음을 수행합니다.
  1. vSphere 네임스페이스를 생성합니다.

    TKG 서비스 클러스터 호스팅을 위한 vSphere 네임스페이스 생성의 내용을 참조하십시오.

  2. 감독자 네트워크 설정 재정의 확인란 옵션을 선택합니다.

    지침은 vSphere 네임스페이스에 대한 워크로드 네트워크 설정 재정의 항목을 참조하십시오.

  3. 다음과 같이 라우팅 가능한 포드 네트워크를 구성합니다.
    필드 설명
    NAT 모드 NAT(네트워크 주소 변환)를 사용하지 않도록 설정하려면 이 옵션을 선택 취소합니다.
    네임스페이스 네트워크

    이 필드를 IP 주소/비트 형식의 라우팅 가능한 IP 서브넷으로 채웁니다(예: 10.0.0.6/16).

    NCP는 네트워크에 대해 지정된 IP 블록에서 하나 이상의 IP 풀을 생성합니다.

    최소한 /23 서브넷 크기를 지정해야 합니다. 예를 들어 /23 라우팅 가능한 서브넷을 /28 서브넷 접두사와 함께 지정하면 6 노드 클러스터에 충분한 32개의 서브넷을 가져올 수 있습니다. 접두사가 /28인 /24 서브넷은 2개의 서브넷만 가져오므로 충분하지 않습니다.

    주의: 추가하는 라우팅 가능한 IP 서브넷이 클러스터 노드의 IP 주소를 할당하는 서비스 CIDR과 겹치지 않는지 확인합니다. 감독자 > 구성 > 네트워크 > 워크로드 네트워크에서 서비스 CIDR을 확인할 수 있습니다.
    네임스페이스 서브넷 접두사

    예를 들어 /28 형식으로 서브넷 접두사를 지정합니다.

    서브넷 접두사는 네임스페이스 네트워크에서 각 노드의 포드 서브넷을 분할하는 데 사용됩니다.

  4. 생성을 클릭하여 라우팅 가능한 포드 네트워크를 생성합니다.

라우팅 가능한 포드 네트워크 생성: TKG 클러스터 구성

다음 예시 YAML은 라우팅 가능한 포드 네트워크로 v1beta1 클러스터를 구성하는 방법을 보여줍니다.

아래 예시에서 볼 수 있듯이 클러스터 규격에서 spec.clusterNetwork.pod 섹션을 제거해야 합니다. 포드 IP 주소는 cloud-provider-vsphere에 의해 할당되기 때문입니다.
참고: 예시는 단일 YAML 파일로 제공되지만 개별 파일로 분리할 수 있습니다. 이렇게 하려면 먼저 AntreaConfigVSphereCPIConfig 사용자 지정 리소스를 생성한 다음, target-cluster 클러스터 순으로 생성해야 합니다.
---
apiVersion: cni.tanzu.vmware.com/v1alpha1
kind: AntreaConfig
metadata:
 name: target-cluster-antrea-package
spec:
 antrea:
   config:
     defaultMTU: ""
     disableUdpTunnelOffload: false
     featureGates:
       AntreaPolicy: true
       AntreaProxy: true
       AntreaTraceflow: true
       Egress: false
       EndpointSlice: true
       FlowExporter: false
       NetworkPolicyStats: false
       NodePortLocal: false
     noSNAT: true
     tlsCipherSuites: TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,TLS_RSA_WITH_AES_256_GCM_SHA384
     trafficEncapMode: noEncap
---
apiVersion: cpi.tanzu.vmware.com/v1alpha1
kind: VSphereCPIConfig
metadata:
 name: target-cluster-vsphere-cpi-package
spec:
 vsphereCPI:
   antreaNSXPodRoutingEnabled: true
   insecure: false
   mode: vsphereParavirtualCPI
   tlsCipherSuites: TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
---
apiVersion: cluster.x-k8s.io/v1beta1
kind: Cluster
metadata:
 name: target-cluster
spec:
 clusterNetwork:
   services:
     cidrBlocks: ["198.51.100.0/12"]
   serviceDomain: "cluster.local"
 topology:
   class: tanzukubernetescluster
   version: v1.25.7---vmware.3-fips.1-tkg.1
   controlPlane:
     replicas: 3
   workers:
     machineDeployments:
       - class: node-pool
         name: node-pool-1
         replicas: 3
   variables:
     - name: vmClass
       value: guaranteed-medium
     - name: storageClass
       value: tkg2-storage-policy