Vous pouvez créer un cluster avec mise en réseau d'espaces routables en configurant le module Antrea CNI avec des paramètres spécifiques et en configurant un réseau d'espaces de noms routables sur le Superviseur.

Implémentation de la mise en réseau des espaces routables à l'aide de l'API v1beta1

L'API v1beta1 prend en charge la mise en réseau d'espaces routables en utilisant Antrea CNI. La fonctionnalité est semblable à son fonctionnement avec l'API v1alpha3. Pour obtenir une description, reportez-vous à Exemple v1alpha3 : TKC avec réseau d'espaces routables.

Les mêmes conditions requises s'appliquent : vous devez utiliser la mise en réseau NSX pour le Superviseur et vous devez configurer un Espace de noms vSphere avec un réseau d'espaces de noms routables. Pour obtenir des conseils, consultez Remplacer les paramètres réseau du Superviseur.

Bien que la fonctionnalité soit la même, l'implémentation de la mise en réseau des espaces routables à l'aide de l'API v1beta1 est différente de l'approche de l'API v1alpha3. À l'aide de l'API v1beta1, vous personnalisez la CNI comme indiqué dans l'exemple Cluster Calico. Dans ce cas, cependant, vous utilisez toujours le module Antrea CNI, mais en fournissant des instructions de configuration spéciales pour créer le module Antrea CNI avec la mise en réseau des espaces routables.

Pour ce faire, créez VSphereCPIConfig et AntreaConfig avec des configurations spécifiques. VSphereCPIConfig définit l'indicateur antreaNSXPodRoutingEnabled sur true. De même, AntreaConfig active des indicateurs spécifiques. Il existe des exemples de configurations VSphereCPIConfig et AntreaConfig dans l'espace de noms tkg-system avec -routable comme suffixe.

Une fois que vous avez configuré le module Antrea CNI pour la mise en réseau des espaces routables, comme pour l'approche v1alpha3, vous laissez le champ pods.cidrBlocks vide dans la spécification du cluster. Par exemple :

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