È possibile personalizzare Servizio Tanzu Kubernetes Grid con impostazioni globali per le funzionalità principali, tra cui l'interfaccia CNI (Container Network Interface), il server proxy e i certificati TLS. Ci sono alcuni aspetti da tenere presenti quando si implementa la funzionalità globale anziché la funzionalità per cluster.
Specifica v1alpha2 TkgServiceConfiguration
TkgServiceConfiguration
fornisce campi per la configurazione dell'istanza di
Servizio 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
vengono applicate a tutti i cluster
Tanzu Kubernetes con provisioning eseguito da tale servizio. Se viene avviato un aggiornamento in sequenza, manualmente o tramite upgrade, i cluster vengono aggiornati in base alla specifica del servizio modificata.
Specifica TkgServiceConfiguration v1alpha2 annotata
TkgServiceConfiguration
. Per alcuni esempi, vedere
Esempi di configurazione dell'API v1alpha1 del Servizio 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
Nessun requisito per il campo proxy
I valori CIDR spec.proxy.noProxy
richiesti vengono visualizzati in Rete carico di lavoro nel Cluster supervisore. Non è necessario specificare proxy per i CIDR pod, ingresso e uscita includendoli nel campo noProxy
.
noProxy
, tenere conto di quanto segue:
- Non è necessario includere il CIDR dei servizi Cluster supervisore nel campo
noProxy
. I cluster Tanzu Kubernetes non interagiscono con tali servizi. - Agli endpoint
localhost
e127.0.0.1
non viene applicato il proxy per impostazione predefinita. Non è necessario aggiungerli al camponoProxy
. - I CIDR di pod e servizio per i cluster Tanzu Kubernetes non vengono elaborati automaticamente mediante il proxy. Non è necessario aggiungerli al campo
noProxy
.
Quando utilizzare le opzioni di configurazione globale o per cluster
TkgServiceConfiguration
è una specifica globale che influisce su tutti i cluster di Tanzu Kubernetes con provisioning eseguito dall'istanza di Servizio Tanzu Kubernetes Grid.
TkgServiceConfiguration
, esaminare le alternative per cluster disponibili che potrebbero essere più adatte alle proprie esigenze di una configurazione globale.
Impostazione | Opzione globale | Opzione per cluster |
---|---|---|
CNI predefinita | Modificare la specifica TkgServiceConfiguration . Vedere Esempi di configurazione dell'API v1alpha1 del Servizio Tanzu Kubernetes Grid. |
Specificare l'interfaccia CNI nella specifica del cluster. Ad esempio, Antrea è l'interfaccia CNI predefinita. Per utilizzare Calico, specificarlo nel codice YAML del cluster. Vedere Esempi di provisioning dei cluster Tanzu Kubernetes mediante l'API v1alpha1 del Servizio Tanzu Kubernetes Grid. |
Server proxy | Modificare la specifica TkgServiceConfiguration . Vedere Esempi di configurazione dell'API v1alpha1 del Servizio Tanzu Kubernetes Grid. |
Includere i parametri di configurazione del server proxy nella specifica del cluster. Vedere Esempi di provisioning dei cluster Tanzu Kubernetes mediante l'API v1alpha1 del Servizio Tanzu Kubernetes Grid. |
Certificati attendibili | Modificare la specifica TkgServiceConfiguration . Esistono due casi d'uso: configurazione di un registro di container esterno e configurazione di un proxy basato su certificato. Vedere Esempi di configurazione dell'API v1alpha1 del Servizio Tanzu Kubernetes Grid. |
Sì, è possibile includere certificati personalizzati in base al cluster o sostituire le impostazioni di trust impostate globalmente nella specifica del cluster. Vedere Esempi di provisioning dei cluster Tanzu Kubernetes mediante l'API v1alpha1 del Servizio Tanzu Kubernetes Grid. |
TkgServiceConfiguration
è configurato un proxy globale, le informazioni di tale proxy vengono propagate al manifesto del cluster dopo la distribuzione iniziale del cluster. La configurazione del proxy globale viene aggiunta al manifesto del cluster solo se non sono presenti campi di configurazione del proxy durante la creazione del cluster. In altre parole, la configurazione per cluster ha la precedenza e sovrascriverà la configurazione di un proxy globale. Per ulteriori informazioni, vedere
Parametri di configurazione per l'API v1alpha1 di Servizio Tanzu Kubernetes Grid.
Prima di modificare la specifica TkgServiceConfiguration
, tenere presenti le conseguenze dell'applicazione dell'impostazione a livello globale.
Campo | Applicato | Impatto sui cluster esistenti in caso di aggiunta/modifica | Sostituzione per cluster durante la creazione del cluster | Sostituzione per cluster durante l'aggiornamento del cluster |
---|---|---|---|---|
defaultCNI |
Globalmente | Nessuno | Sì, è possibile sostituire l'impostazione globale durante la creazione del cluster | No, non è possibile modificare l'interfaccia CNI per un cluster esistente. Se durante la creazione del cluster è stata utilizzata l'interfaccia CNI predefinita impostata globalmente, non può essere modificata. |
proxy |
Globalmente | Nessuno | Sì, è possibile sostituire l'impostazione globale durante la creazione del cluster | Sì, con U2+, è possibile sostituire l'impostazione globale durante l'aggiornamento del cluster |
trust |
Globalmente | Nessuno | Sì, è possibile sostituire l'impostazione globale durante la creazione del cluster | Sì, con U2+, è possibile sostituire l'impostazione globale durante l'aggiornamento del cluster |
Propagazione delle modifiche della configurazione globale ai cluster esistenti
Le impostazioni specificate a livello globale in TkgServiceConfiguration
non vengono propagate automaticamente ai cluster esistenti. Ad esempio, se si apportano modifiche alle impostazioni di proxy
o trust
in TkgServiceConfiguration
, tali modifiche non influiranno sui cluster per cui è già stato eseguito il provisioning.
Per propagare una modifica globale a un cluster esistente, è necessario applicare una patch al cluster di Tanzu Kubernetes per fare in modo che il cluster erediti le modifiche apportate a 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}}}}"