Você pode criar um Cluster com rede de pods roteáveis configurando o pacote Antrea CNI com configurações específicas e configurando uma Rede de Namespaces roteáveis em Supervisor.
Implementando a rede de pods roteáveis usando a API v1beta1
A API v1beta1 é compatível com a rede de pods roteáveis usando o Antrea CNI. A funcionalidade é semelhante à forma como funciona com a API v1alpha3. Consulte Exemplo de v1alpha3: TKC com rede de pods roteáveis para obter uma descrição.
Os mesmos requisitos se aplicam: você deve usar a rede NSX para Supervisor e deve configurar um vSphere Namespace com uma rede de namespace roteável. Consulte Substituir Supervisor configurações de rede para obter orientação.
Embora a funcionalidade seja a mesma, a implementação da rede de pods roteáveis usando a API v1beta1 é diferente da abordagem da API v1alpha3. Usando a API v1beta1, você personaliza a CNI de forma semelhante ao método demonstrado no exemplo do Cluster Calico. Nesse caso, no entanto, você ainda está usando o pacote Antrea CNI, mas fornecendo instruções de configuração especiais para criar o pacote Antrea CNI com a rede de pods roteáveis.
Para fazer isso, crie um VSphereCPIConfig e um AntreaConfig com configurações específicas. O VSphereCPIConfig define o sinalizador antreaNSXPodRoutingEnabled
como true. Da mesma forma, o AntreaConfig habilita sinalizadores específicos. Há exemplos de configurações do VSphereCPIConfig e do AntreaConfig no namespace tkg-system
com -routable
como o sufixo.
Depois de configurar o pacote Antrea CNI para a rede de pods roteáveis, semelhante à abordagem v1alpha3, deixe o campo pods.cidrBlocks
vazio na especificação do cluster. Por exemplo:
apiVersion: cpi.tanzu.vmware.com/v1alpha1 kind: VSphereCPIConfig metadata: name: cluster-4 namespace: tkg spec: vsphereCPI: antreaNSXPodRoutingEnabled: true insecure: false mode: vsphereParavirtualCPI --- apiVersion: cni.tanzu.vmware.com/v1alpha1 kind: AntreaConfig metadata: name: cluster-4 namespace: tkg spec: antrea: config: featureGates: AntreaProxy: true EndpointSlice: true AntreaPolicy: true FlowExporter: true Egress: true NodePortLocal: true AntreaTraceflow: true NetworkPolicyStats: true noSNAT: true trafficEncapMode: noEncap --- apiVersion: run.tanzu.vmware.com/v1alpha3 kind: ClusterBootstrap metadata: annotations: tkg.tanzu.vmware.com/add-missing-fields-from-tkr: v1.23.8---vmware.2-tkg.2-zshippable name: cluster-4 spec: cni: refName: antrea.tanzu.vmware.com.1.5.3+tkg.2-zshippable valuesFrom: providerRef: apiGroup: cni.tanzu.vmware.com kind: AntreaConfig name: cluster-4 --- apiVersion: cluster.x-k8s.io/v1beta1 kind: Cluster metadata: name: cluster-4 namespace: tkg spec: clusterNetwork: services: cidrBlocks: ["198.52.100.0/12"] pods: cidrBlocks: [] serviceDomain: "cluster.local" topology: class: tanzukubernetescluster version: v1.23.8---vmware.2-tkg.2-zshippable controlPlane: replicas: 1 metadata: annotations: run.tanzu.vmware.com/resolve-os-image: os-name=ubuntu workers: machineDeployments: - class: node-pool name: node-pool-01 replicas: 3 metadata: annotations: run.tanzu.vmware.com/resolve-os-image: os-name=ubuntu variables: - name: vmClass value: guaranteed-medium - name: storageClass value: tkg2-storage-policy