Vous pouvez utiliser l'API v1beta1 pour créer un cluster avec un réseau d'espaces routables. Pour ce faire, vous devez remplacer le cluster par défaut par des configurations personnalisées pour AntreaConfig et VSphereCPIConfig.

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

L'exemple de YAML suivant montre comment utiliser l'API v1beta1 pour provisionner un cluster avec la fonctionnalité Antrea RoutablePod activée. Cet exemple s'appuie sur l'Exemple v1beta1 : cluster par défaut.

Pour activer la fonctionnalité RoutablePod, le cluster nécessite AntreaConfig et VSphereCPIConfig avec une configuration spéciale.

AntreaConfig doit définir trafficEncapMode: noEncap et noSNAT: true.

VSphereCPIConfig doit définir antreaNSXPodRoutingEnabled: true, mode: vsphereParavirtualCPI et
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

Le nom de AntreaConfig doit être au format suivant : <cluster-name>-antrea-package. Le nom de VSphereCPIConfig doit être au format suivant : <cluster-name>-vsphere-cpi-package.

Une fois les fichiers de configuration créés, vous devez ensuite créer l'objet de spécification de cluster qui fait référence aux fichiers de configuration. Lors de la création du cluster, les fichiers de configuration seront utilisés pour provisionner le cluster et remplacer la configuration par défaut.

Création d'un réseau d'espaces routables : configuration du Superviseur

La création d'un réseau d'espaces routables nécessite une configuration sur le Superviseur et sur le cluster TKG.
Note : Superviseur doit être configuré avec NSX pour utiliser la mise en réseau d'espaces routables. Vous ne pouvez pas utiliser des espaces routables avec la mise en réseau VDS.
Pour configurer un réseau d'espaces routables sur le Superviseur :
  1. Créez un nouvel Espace de noms vSphere.

    Reportez-vous à la section Créer un Espace de noms vSphere pour héberger des clusters TKG sur le Superviseur.

  2. Cochez cette case pour Remplacer les paramètres du réseau du superviseur.

    Pour obtenir des conseils, consultez Remplacer les paramètres réseau du Superviseur pour un Espace de noms vSphere.

  3. Désélectionnez Mode NAT.
  4. Renseignez le Réseau d'espace de noms avec un sous-réseau routable. NCP créera un ou plusieurs pools d'adresses IP à partir des blocs d'adresses IP spécifiés pour le réseau.
  5. Assurez-vous que le Réseau d'espace de noms routable que vous avez ajouté ne chevauche pas le CIDR de services qui alloue les adresses IP aux nœuds de cluster.

Création d'un réseau d'espaces routables : configuration du cluster TKG

L'exemple de YAML suivant montre comment configurer un cluster v1beta1 avec un réseau d'espaces routables.

Comme indiqué dans l'exemple ci-dessous, vous devez supprimer la section spec.clusterNetwork.pod de la spécification de cluster, car les adresses IP de l'espace seront allouées par cloud-provider-vsphere.
Note : L'exemple est fourni sous la forme d'un fichier YAML unique, mais peut être séparé en fichiers individuels. Si vous le faites, vous devez les créer dans l'ordre : d'abord les ressources personnalisées AntreaConfig et VSphereCPIConfig, puis le cluster 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