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.
Spécification TkgServiceConfiguration v1alpha2
TkgServiceConfiguration
fournit des champs pour la configuration de l'instance du
Service Tanzu Kubernetes Grid.
apiVersion: run.tanzu.vmware.com/v1alpha2 kind: TkgServiceConfiguration metadata: name: tkg-service-configuration-spec spec: defaultCNI: string proxy: httpProxy: string httpsProxy: string noProxy: [string] trust: additionalTrustedCAs: - name: string data: string defaultNodeDrainTimeout: time
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 v1alpha2 annotée
TkgServiceConfiguration
. Pour consulter des exemples, reportez-vous à la section
Exemples de configuration de l'API v1alpha1 du Service Tanzu Kubernetes Grid.
apiVersion: run.tanzu.vmware.com/v1alpha2 kind: TkgServiceConfiguration metadata: name: tkg-service-configuration-spec spec: #defaultCNI is the default CNI for all Tanzu Kubernetes #clusters to use unless overridden on a per-cluster basis #supported values are antrea, calico, antrea-nsx-routed #defaults to antrea defaultCNI: string #proxy configures a proxy server to be used inside all #clusters provisioned by this TKGS instance #if implemented all fields are required #if omitted no proxy is configured proxy: #httpProxy is the proxy URI for HTTP connections #to endpionts outside the clusters #takes the form http://<user>:<pwd>@<ip>:<port> httpProxy: string #httpsProxy is the proxy URI for HTTPS connections #to endpoints outside the clusters #takes the frorm http://<user>:<pwd>@<ip>:<port> httpsProxy: string #noProxy is the list of destination domain names, domains, #IP addresses, and other network CIDRs to exclude from proxying #must include Supervisor Cluster Pod, Egress, Ingress CIDRs noProxy: [string] #trust configures additional trusted certificates #for the clusters provisioned by this TKGS instance #if omitted no additional certificate is configured trust: #additionalTrustedCAs are additional trusted certificates #can be additional CAs or end certificates additionalTrustedCAs: #name is the name of the additional trusted certificate #must match the name used in the filename - name: string #data holds the contents of the additional trusted cert #PEM Public Certificate data encoded as a base64 string data: string #defaultNodeDrainTimeout is the total amount of time the #controller spends draining a node; default is undefined #which is the value of 0, meaning the node is drained #without any time limitations; note that `nodeDrainTimeout` #is different from `kubectl drain --timeout` defaultNodeDrainTimeout: time
Configuration requise du serveur proxy
- Les paramètres
proxy
requis sonthttpProxy
,httpsProxy
etnoProxy
. Si vous ajoutez l'entitéproxy
, les trois champs sont obligatoires. - Vous pouvez vous connecter au serveur proxy à l'aide de HTTP. Les connexions HTTPS ne sont pas prises en charge.
- Vous obtenez les valeurs de
spec.proxy.noProxy
requises dans le Réseau de charge de travail. Vous ne devez pas mettre en proxy le Réseau d'espaces de noms (anciennement nommé CIDR d'espaces), Entrée (anciennement CIDR d'entrée) et Sortie (anciennement CIDR de sortie) en les incluant dans le champnoProxy
. Reportez-vous aux exemples d'images ci-dessous. - Vous n'avez pas besoin d'inclure les CIDR de services dans le champ
noProxy
. Les clusters Tanzu Kubernetes n'interagissent pas avec ce sous-réseau. - Vous n'avez pas besoin d'inclure les valeurs
network.services.cidrBlocks
etnetwork.pods.cidrBlocks
de la spécification du cluster Tanzu Kubernetes dans le champnoProxy
. Ces sous-réseaux ne sont pas automatiquement mis en proxy. - Vous n'avez pas besoin d'inclure
localhost
et127.0.0.1
dans le champnoProxy
. Automatiquement, les points de terminaison ne sont pas mis en proxy pour vous.
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.
TkgServiceConfiguration
, apprenez à connaître les solutions par cluster pouvant répondre à votre cas d'utilisation plutôt qu'une configuration globale.
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. |
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
.
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}}}}"