Vous pouvez personnaliser le Service Tanzu Kubernetes Grid avec des paramètres globaux pour des fonctionnalités clés, notamment l'interface réseau de conteneur (CNI), le serveur proxy et les certificats TLS. Soyez conscient des compromis et des éléments à prendre en compte lors de l'implémentation de fonctionnalités globales et par cluster.

Vous pouvez éventuellement configurer le Service Tanzu Kubernetes Grid avec des paramètres globaux.

Attention : La configuration du Service Tanzu Kubernetes Grid est une opération globale. Cela signifie que toute modification que vous apportez à la spécification TkgServiceConfiguration s'applique à tous les clusters Tanzu Kubernetes provisionnés par ce service. Si une mise à jour continue est initiée, manuellement ou par mise à niveau, les clusters sont mis à jour par la spécification de service modifiée.

Spécification TkgServiceConfiguration

La spécification TkgServiceConfiguration fournit des champs pour la configuration de l'instance du Service Tanzu Kubernetes Grid.
apiVersion: run.tanzu.vmware.com/v1alpha1
kind: TkgServiceConfiguration
metadata:
  name: tkg-service-configuration-example
spec:
  defaultCNI: <antrea or calico>
  proxy:
    httpProxy: http://<user>:<pwd>@<ip>:<port>
    httpsProxy: http://<user>:<pwd>@<ip>:<port>
    noProxy: [<array of CIDRs to not proxy>]
  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>

Paramètres de spécification TkgServiceConfiguration

Le tableau répertorie et décrit chacun des paramètres de la spécification TkgServiceConfiguration. Pour consulter des exemples, reportez-vous à la section Exemples de configuration de l'API v1alpha1 du Service Tanzu Kubernetes Grid.
Champ Valeur Description
defaultCNI antrea or calico CNI par défaut pour les clusters à utiliser. La valeur par défaut est antrea. L'autre CNI pris en charge est calico.
proxy Marqueur de section pour les paramètres proxy. Les paramètres proxy sont httpProxy, httpsProxy et noProxy. Tous les paramètres sont requis. Si un paramètre proxy est manquant, vous ne pouvez pas créer de clusters Tanzu Kubernetes.
httpProxy URI sous la forme http://<user>:<pwd>@<ip>:<port> N'autorise pas le protocole https. Si https est utilisé, vous ne pouvez pas créer de clusters Tanzu Kubernetes.
httpsProxy URI sous la forme http://<user>:<pwd>@<ip>:<port> N'autorise pas le protocole https. Si https est utilisé, vous ne pouvez pas créer de clusters Tanzu Kubernetes.
noProxy

Groupe de blocs CIDR à ne pas mettre en proxy. Par exemple : [10.246.0.0/16,192.168.144.0/20,192.168.128.0/20].

Obtenez les valeurs requises à partir du réseau de charge de travail sur le cluster superviseur : Pod CIDRs, Ingress CIDRs et Egress CIDRs.

Reportez-vous à l'image ci-dessous pour savoir quelles valeurs inclure dans le champ de groupe noProxy.

Vous ne devez pas proxyer les sous-réseaux utilisés par le réseau de charge de travail sur le cluster superviseur pour les groupes, l'entrée et la sortie.

Vous n'avez pas besoin d'inclure les CIDR de services du cluster superviseur dans le champ noProxy. Les clusters Tanzu Kubernetes n'interagissent pas avec ces services.

Les points de terminaison localhost et 127.0.0.1 sont automatiquement mis hors proxy. Vous n'avez pas besoin de les ajouter au champ noProxy.

Les CIDR d'espace et de service pour les clusters Tanzu Kubernetes sont automatiquement mis hors proxy. Vous n'avez pas besoin de les ajouter au champ noProxy.

trust Marqueur de section pour les paramètres trust. N'accepte aucune donnée.
additionalTrustedCAs Accepte un groupe de certificats avec name et data pour chacun d'eux. N'accepte aucune donnée.
name String Nom du certificat TLS.
data String Chaîne codée en base64 d'un certificat public codé en PEM.

Obtenez les valeurs noProxy requises dans Réseau de charge de travail sur le Cluster superviseur comme indiqué dans l'image.

Fenêtre Réseau de charge de travail avec les valeurs CIDR d'espace, CIDR d'entrée et CIDR de sortie mises en surbrillance.

Quand utiliser les options de configuration globale ou par cluster

TkgServiceConfiguration est une spécification globale qui affecte tous les clusters Tanzu Kubernetes provisionnés par l'instance de Service Tanzu Kubernetes Grid.

Avant de modifier la spécification TkgServiceConfiguration, apprenez à connaître les solutions par cluster pouvant répondre à votre cas d'utilisation plutôt qu'une configuration globale.
Tableau 1. Options de configuration globale/par cluster
Paramètre Option globale Option par cluster
CNI par défaut Modifiez la spécification TkgServiceConfiguration. Reportez-vous à la section Exemples de configuration de l'API v1alpha1 du Service Tanzu Kubernetes Grid. Spécifiez le CNI dans la spécification du cluster. Par exemple, Antrea est le CNI par défaut. Pour utiliser Calico, spécifiez-le dans le YAML du cluster. Reportez-vous à la section Exemples de provisionnement de clusters Tanzu Kubernetes à l'aide de l'API v1alpha1 du Service Tanzu Kubernetes Grid.
Serveur proxy Modifiez la spécification TkgServiceConfiguration. Reportez-vous à la section Exemples de configuration de l'API v1alpha1 du Service Tanzu Kubernetes Grid. Incluez les paramètres de configuration du serveur proxy dans la spécification de cluster. Reportez-vous à la section Exemples de provisionnement de clusters Tanzu Kubernetes à l'aide de l'API v1alpha1 du Service Tanzu Kubernetes Grid.
Certificats de confiance Modifiez la spécification TkgServiceConfiguration. Il existe deux cas d'utilisation : la configuration d'un registre de conteneur externe et d'un proxy basé sur un certificat. Reportez-vous à la section Exemples de configuration de l'API v1alpha1 du Service Tanzu Kubernetes Grid. Oui, vous pouvez inclure des certificats personnalisés par cluster ou remplacer les paramètres trust globalement définis dans la spécification du cluster. Reportez-vous à la section Exemples de provisionnement de clusters Tanzu Kubernetes à l'aide de l'API v1alpha1 du Service Tanzu Kubernetes Grid.
Note : Si un proxy global est configuré sur TkgServiceConfiguration, ces informations de proxy sont propagées au manifeste du cluster après le déploiement initial du cluster. La configuration du proxy global est ajoutée au manifeste du cluster uniquement si aucun champ de configuration de proxy n'est présent lors de la création du cluster. En d'autres termes, la configuration par cluster est prioritaire et la configuration du proxy global est prioritaire. Pour plus d'informations, consultez Paramètres de configuration de Service Tanzu Kubernetes Grid v1alpha1 API.

Avant de modifier la spécification TkgServiceConfiguration, apprenez à connaître les conséquences de l'application du paramètre au niveau global.

Champ Appliqué Impact sur les clusters existants en cas d'ajout/de modification Remplacement par cluster lors de la création d'un cluster Remplacement par cluster lors de la mise à jour d'un cluster
defaultCNI Globalement Aucun Oui, vous pouvez remplacer le paramètre global lors de la création du cluster Non, vous ne pouvez pas modifier le CNI d'un cluster existant ; si vous avez utilisé le CNI par défaut défini globalement lors de la création du cluster, il ne peut pas être modifié
proxy Globalement Aucun Oui, vous pouvez remplacer le paramètre global lors de la création du cluster Oui, avec U2+, vous pouvez remplacer le paramètre global lors de la mise à jour du cluster
trust Globalement Aucun Oui, vous pouvez remplacer le paramètre global lors de la création du cluster Oui, avec U2+, vous pouvez remplacer le paramètre global lors de la mise à jour du cluster

Propagation des modifications de la configuration globale aux clusters existants

Les paramètres définis au niveau global dans TkgServiceConfiguration ne sont pas automatiquement propagés aux clusters existants. Par exemple, si vous apportez des modifications aux paramètres proxy ou trust dans TkgServiceConfiguration, ces modifications n'affecteront pas les clusters déjà provisionnés.

Pour propager une modification globale à un cluster existant, vous devez corriger le cluster Tanzu Kubernetes pour que le cluster hérite des modifications apportées à TkgServiceConfiguration.

Par exemple :
kubectl patch tkc <CLUSTER_NAME> -n <NAMESPACE> --type merge -p "{\"spec\":{\"settings\":{\"network\":{\"proxy\": null}}}}"
kubectl patch tkc <CLUSTER_NAME> -n <NAMESPACE> --type merge -p "{\"spec\":{\"settings\":{\"network\":{\"trust\": null}}}}"