Reportez-vous aux exemples pour personnaliser l'API v1alpha2 du Service Tanzu Kubernetes Grid avec des paramètres de configuration globaux pour l'interface du réseau du conteneur, le serveur proxy et les certificats TLS.

Configuration du Service Tanzu Kubernetes Grid à l'aide de l'API v1alpha2

Vous pouvez personnaliser le Service Tanzu Kubernetes Grid en modifiant le CNI par défaut, en ajoutant un serveur proxy global et en ajoutant des certificats de confiance. Reportez-vous à la section Paramètres de configuration de Service Tanzu Kubernetes Grid v1alpha1 API.
apiVersion: run.tanzu.vmware.com/v1alpha2
kind: TkgServiceConfiguration
metadata:
  name: tkg-service-v2-configuration-example
spec:
  defaultCNI: antrea
  proxy:
    #supported format is `http://<user>:<pwd>@<ip>:<port>`
    httpProxy: http://admin:PaSsWoRd@10.66.100.22:80
    httpsProxy: http://admin:PaSsWoRd@10.66.100.22:80
    noProxy: [10.246.0.0/16,192.168.144.0/20,192.168.128.0/20]
  trust: 
    additionalTrustedCAs:
      - name: CompanyInternalCA-1
        data: LS0tLS1C...LS0tCg==
        #where "..." is the middle section of the long base64 string
      - name: CompanyInternalCA-2
        data: MTLtMT1C...MT0tPg==        
  defaultNodeDrainTimeout: 0
Attention : La modification de la spécification du Service Tanzu Kubernetes Grid entraîne des modifications globales apportées à tous les clusters provisionnés par ce service, notamment les nouveaux clusters et les clusters existants qui sont mis à niveau manuellement ou automatiquement.

Condition préalable : configurer la modification Kubectl

Pour dimensionner un cluster Tanzu Kubernetes, vous mettez à jour le manifeste du cluster à l'aide de la commande kubectl edit tanzukubernetescluster/CLUSTER-NAME. La commande kubectl edit ouvre le manifeste du cluster dans l'éditeur de texte défini par votre variable d'environnement KUBE_EDITOR ou EDITOR. Pour obtenir des instructions sur la configuration de la variable d'environnement, reportez-vous à la section Spécifier un éditeur de texte par défaut pour Kubectl.

Lorsque vous enregistrez les modifications de spécification, kubectl signale que les modifications ont été enregistrées. Pour annuler, fermez simplement l'éditeur sans enregistrer.

Configurer le CNI par défaut

Le Service Tanzu Kubernetes Grid fournit une interface réseau de conteneur (CNI) par défaut pour les clusters Tanzu Kubernetes. La configuration par défaut vous permet de créer des clusters sans devoir spécifier le CNI. Vous pouvez modifier le CNI par défaut en modifiant la spécification de service.

Le Service Tanzu Kubernetes Grid prend en charge deux CNI : Antrea et Calico, Antrea étant utilisé par défaut. Pour plus d'informations, consultez Mise en réseau du cluster Service Tanzu Kubernetes Grid.

Vous pouvez remplacer le CNI par défaut en spécifiant explicitement le CNI à utiliser. Vous pouvez également modifier le CNI par défaut en modifiant le contrôleur de service TKG pour CNI.
  1. Authentifiez-vous avec le Cluster superviseur.
    kubectl vsphere login --server=SVC-IP-ADDRESS --vsphere-username USERNAME
  2. Basculez le contexte sur l'Espace de noms vSphere cible.
    kubectl config use-context tkgs-cluster-ns
  3. Répertoriez le CNI par défaut.
    kubectl get tkgserviceconfigurations
    Exemple de résultat :
    NAME                                 DEFAULT CNI
    tkg-service-configuration            antrea
    
  4. Chargez la spécification du Service Tanzu Kubernetes Grid pour modification.
    kubectl edit tkgserviceconfigurations tkg-service-configuration

    Le système ouvre la spécification tkg-service-configuration dans l'éditeur de texte par défaut défini par la variable d'environnement KUBE_EDITOR ou EDITOR.

  5. Modifiez la valeur spec.defaultCNI.
    Par exemple, modifiez :
    spec:
      defaultCNI: antrea
    Remplacez par :
    spec:
      defaultCNI: calico
  6. Pour appliquer les modifications, enregistrez le fichier dans l'éditeur de texte. Pour annuler, fermez l'éditeur sans enregistrer.

    Lorsque vous enregistrez la modification dans l'éditeur de texte, kubectl met à jour la spécification de service tkg-service-configuration.

  7. Vérifiez que le CNI par défaut est mis à jour.
    kubectl get tkgserviceconfigurations
    Le CNI par défaut est mis à jour. Tout cluster provisionné avec des paramètres réseau par défaut utilise le CNI par défaut.
    NAME                                 DEFAULT CNI
    tkg-service-configuration            calico
    

Configurer un serveur proxy global

Pour activer un serveur proxy global, ajoutez les paramètres du serveur proxy à TkgServiceConfiguration. Pour obtenir une description des champs requis, reportez-vous à la section Paramètres de configuration de Service Tanzu Kubernetes Grid v1alpha1 API.
  1. Authentifiez-vous avec le Cluster superviseur.
    kubectl vsphere login --server=SVC-IP-ADDRESS --vsphere-username USERNAME
  2. Basculez le contexte sur l'Espace de noms vSphere cible.
    kubectl config use-context tkgs-cluster-ns
  3. Obtenez la configuration actuelle.
    kubectl get tkgserviceconfigurations
    Exemple de résultat :
    NAME                        DEFAULT CNI
    tkg-service-configuration   antrea
  4. Chargez la spécification du Service Tanzu Kubernetes Grid pour modification.
    kubectl edit tkgserviceconfigurations tkg-service-configuration

    Le système ouvre la spécification tkg-service-configuration dans l'éditeur de texte par défaut défini par la variable d'environnement KUBE_EDITOR ou EDITOR.

  5. Ajoutez la sous-section spec.proxy avec chaque champ requis, notamment httpProxy, httpsProxy et noProxy.
    apiVersion: run.tanzu.vmware.com/v1alpha1
    kind: TkgServiceConfiguration
    metadata:
      ...
      name: tkg-service-configuration-example
      resourceVersion: "44170525"
      selfLink: /apis/run.tanzu.vmware.com/v1alpha1/tkgserviceconfigurations/tkg-service-configuration
      uid: 10347195-5f0f-490e-8ae1-a758a724c0bc
    spec:
      defaultCNI: antrea
      proxy:
        httpProxy: http://<user>:<pwd>@<ip>:<port>
        httpsProxy: http://<user>:<pwd>@<ip>:<port>
        noProxy: [SVC-POD-CIDRs, SVC-EGRESS-CIDRs, SVC-INGRESS-CIDRs]
  6. Remplir chaque champ proxy avec les valeurs appropriées. Pour une description de chaque champ d'état, reportez-vous à la section Paramètres de configuration de Service Tanzu Kubernetes Grid v1alpha1 API.

    Les valeurs requises pour le champ noProxy proviennent du Réseau de charge de travail sur le Cluster superviseur. Pour savoir où obtenir ces valeurs, reportez-vous à l'image de la rubrique ci-dessus.

    Par exemple :
    apiVersion: run.tanzu.vmware.com/v1alpha1
    kind: TkgServiceConfiguration
    metadata:
      ...
      name: tkg-service-configuration-example
      resourceVersion: "44170525"
      selfLink: /apis/run.tanzu.vmware.com/v1alpha1/tkgserviceconfigurations/tkg-service-configuration
      uid: 10347195-5f0f-490e-8ae1-a758a724c0bc
    spec:
      defaultCNI: antrea
      proxy:
        httpProxy: http://user:password@10.186.102.224:3128
        httpsProxy: http://user:password@10.186.102.224:3128
        noProxy: [10.246.0.0/16,192.168.144.0/20,192.168.128.0/20]
  7. Pour appliquer les modifications, enregistrez le fichier dans l'éditeur de texte. Pour annuler, fermez l'éditeur sans enregistrer.

    Lorsque vous enregistrez les modifications dans l'éditeur de texte, kubectl met à jour Service Tanzu Kubernetes Grid avec la configuration définie dans la spécification du service tkg-service-configuration.

  8. Vérifiez que le Service Tanzu Kubernetes Grid est mis à jour avec les paramètres de proxy.
    kubectl get tkgserviceconfigurations -o yaml
  9. Pour vérifier, provisionnez un cluster Tanzu Kubernetes. Reportez-vous à la section Workflow de provisionnement de clusters Tanzu Kubernetes à l'aide de TKGS v1alpha2 API.
    Utilisez la commande suivante pour confirmer que le cluster utilise le proxy.
    kubectl get tkc CLUSTER-NAME -n NAMESPACE -o yaml

Configuration du proxy basé sur les certificats

L'utilisation d'un serveur proxy pour acheminer le trafic Internet est une exigence stricte pour certains environnements. Par exemple, une entreprise dans un secteur hautement réglementé, telle qu'une institution financière, exige que tout le trafic Internet passe par un proxy d'entreprise.

Vous pouvez configurer le Service Tanzu Kubernetes Grid pour provisionner les clusters Tanzu Kubernetes afin d'utiliser un serveur proxy pour le trafic HTTP/S sortant. Pour plus d'informations, consultez Paramètres de configuration de Service Tanzu Kubernetes Grid v1alpha1 API.

Comme indiqué dans l'exemple, vous pouvez ajouter des certificats de confiance pour le serveur proxy à la spécification TkgServiceConfiguration.
apiVersion: run.tanzu.vmware.com/v1alpha1
kind: TkgServiceConfiguration
metadata:
  name: tkg-service-configuration-example
spec:
  defaultCNI: antrea
  proxy:
    httpProxy: http://user:password@10.186.102.224:3128
    httpsProxy: http://user:password@10.186.102.224:3128
    noProxy: [10.246.0.0/16,192.168.144.0/20,192.168.128.0/20]
  trust:
    additionalTrustedCAs:
      - name: first-cert-name
        data: base64-encoded string of a PEM encoded public cert 1
      - name: second-cert-name
        data: base64-encoded string of a PEM encoded public cert 2
  defaultNodeDrainTimeout: 0

Configuration du registre privé externe

Vous pouvez configurer le Service Tanzu Kubernetes Grid avec des certificats personnalisés pour la connexion de clusters Tanzu Kubernetes avec un registre privé externe. Pour plus d'informations, consultez Utilisation d'un registre de conteneur externe avec les clusters Tanzu Kubernetes.
apiVersion: run.tanzu.vmware.com/v1alpha1
kind: TkgServiceConfiguration
metadata:
  name: tkg-service-configuration-example
spec:
  defaultCNI: antrea
  trust:
    additionalTrustedCAs:
      - name: harbor-vm-cert
        data: <<<base64-encoded string of a PEM encoded public cert>>>>