Sie können den Tanzu Kubernetes Grid-Dienst mit globalen Einstellungen für wichtige Funktionen anpassen, einschließlich der CNI (Container Network Interface, Container-Netzwerkschnittstelle), des Proxyservers und der TLS-Zertifikate. Berücksichtigen Sie mögliche Kompromisse und andere Überlegungen bei der Implementierung von globaler gegenüber Pro-Cluster-Funktionalität.
TkgServiceConfiguration-v1alpha2-Spezifikation
TkgServiceConfiguration
-Spezifikation enthält Felder für die Konfiguration der
Tanzu Kubernetes Grid-Dienst-Instanz.
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
-Spezifikation vornehmen, gelten für alle
Tanzu Kubernetes-Cluster, die von diesem Dienst bereitgestellt werden. Wenn ein rollierendes Update entweder manuell oder durch ein Upgrade initiiert wird, werden Cluster durch die geänderte Dienstspezifikation aktualisiert.
TkgServiceConfiguration-v1alpha2-Spezifikation mit Anmerkungen
TkgServiceConfiguration
-Spezifikationsparameter aufgelistet und beschrieben. Beispiele finden Sie unter
Beispiele für die Konfiguration der Tanzu Kubernetes Grid-Dienst-v1alpha1-API.
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
Konfigurationsanforderungen der Proxy-Server
- Zu den erforderlichen
proxy
-Parametern gehörenhttpProxy
,httpsProxy
undnoProxy
. Wenn Sie dieproxy
-Instanz hinzufügen, sind alle drei Felder obligatorisch. - Sie können mithilfe von HTTP eine Verbindung zum Proxy-Server herstellen. HTTPS-Verbindungen werden nicht unterstützt.
- Die erforderlichen
spec.proxy.noProxy
-Werte können Sie über das Arbeitslastnetzwerk abrufen. Sie dürfen Namespace-Netzwerk (ehemals CIDRs der Pods), Ingress (ehemals Ingress-CIDRs) und Egress (ehemals Egress-CIDRs) nicht mit einem Proxy verbinden, indem Sie sie in das FeldnoProxy
aufnehmen. Weitere Informationen finden Sie in den folgenden Abbildungen mit Beispielen. - Sie müssen das Dienst-CIDR nicht in das Feld
noProxy
aufnehmen. Tanzu Kubernetes-Cluster interagieren nicht mit diesem Subnetz. - Die Werte
network.services.cidrBlocks
undnetwork.pods.cidrBlocks
aus der Spezifikation des Tanzu Kubernetes-Clusters brauchen Sie nicht in das FeldnoProxy
aufzunehmen. Diese Subnetze werden nicht automatisch mit einem Proxy verbunden. - Sie brauchen
localhost
und127.0.0.1
nicht in das FeldnoProxy
aufzunehmen. Die Endpoints werden nicht automatisch mit einem Proxy verbunden.
Wann globale oder clusterspezifische Konfigurationsoptionen verwendet werden sollten
Die TkgServiceConfiguration
ist eine globale Spezifikation, die sich auf alle Tanzu Kubernetes-Cluster auswirkt, die von der Tanzu Kubernetes Grid-Dienst-Instanz bereitgestellt werden.
TkgServiceConfiguration
-Spezifikation bearbeiten, sollten Sie sich über die Pro-Cluster-Alternativen informieren, die anstelle einer globalen Konfiguration für Ihren Anwendungsfall geeignet sein könnten.
Einstellung | Globale Option | Pro-Cluster-Option |
---|---|---|
Standard-CNI | Bearbeiten Sie die TkgServiceConfiguration -Spezifikation. Weitere Informationen finden Sie unter Beispiele für die Konfiguration der Tanzu Kubernetes Grid-Dienst-v1alpha1-API. |
Geben Sie die CNI in der Clusterspezifikation an. Beispiel: Antrea ist die Standard-CNI. Um Calico zu verwenden, geben Sie die Spezifikation in der Cluster-YAML an. Siehe Beispiele für die Bereitstellung von Tanzu Kubernetes-Clustern mit der Tanzu Kubernetes Grid-Dienst-v1alpha1-API. |
Proxyserver | Bearbeiten Sie die TkgServiceConfiguration -Spezifikation. Weitere Informationen finden Sie unter Beispiele für die Konfiguration der Tanzu Kubernetes Grid-Dienst-v1alpha1-API. |
Schließen Sie die Konfigurationsparameter des Proxyservers in die Clusterspezifikation ein. Weitere Informationen finden Sie unter Beispiele für die Bereitstellung von Tanzu Kubernetes-Clustern mit der Tanzu Kubernetes Grid-Dienst-v1alpha1-API. |
Vertrauenszertifikate | Bearbeiten Sie die TkgServiceConfiguration -Spezifikation. Es gibt zwei Anwendungsfälle: die Konfiguration einer externen Container-Registrierung und die zertifikatsbasierte Proxy-Konfiguration. Siehe Beispiele für die Konfiguration der Tanzu Kubernetes Grid-Dienst-v1alpha1-API. |
Ja, Sie können clusterspezifische benutzerdefinierte Zertifikate hinzufügen oder die global festgelegten trust -Einstellungen in der Clusterspezifikation überschreiben. Weitere Informationen finden Sie unter Beispiele für die Bereitstellung von Tanzu Kubernetes-Clustern mit der Tanzu Kubernetes Grid-Dienst-v1alpha1-API. |
TkgServiceConfiguration
konfiguriert ist, werden diese Proxy-Informationen nach der ersten Bereitstellung des Clusters an das Clustermanifest weitergegeben. Die globale Proxy-Konfiguration wird nur dann zum Clustermanifest hinzugefügt, wenn beim Erstellen des Clusters keine Proxy-Konfigurationsfelder vorhanden sind. Anders ausgedrückt: Die Konfiguration pro Cluster hat Vorrang und überschreibt eine globale Proxy-Konfiguration. Weitere Informationen finden Sie unter
Konfigurationsparameter für die Tanzu Kubernetes Grid-Dienst-v1alpha1-API.
Bevor Sie die TkgServiceConfiguration
-Spezifikation bearbeiten, machen Sie sich mit den Auswirkungen der Anwendung der Einstellung auf globaler Ebene vertraut.
Feld | Angewendet | Auswirkungen auf vorhandene Cluster, wenn hinzugefügt/geändert | Außerkraftsetzung pro Cluster bei Clustererstellung | Außerkraftsetzung pro Cluster bei Clusteraktualisierung |
---|---|---|---|---|
defaultCNI |
Global | Keine | Ja, Sie können die globale Einstellung bei der Clustererstellung außer Kraft setzen. | Nein, Sie können den CNI für einen vorhandenen Cluster nicht ändern. Wenn Sie den global festgelegten Standard-CNI bei der Clustererstellung verwendet haben, kann er nicht geändert werden. |
proxy |
Global | Keine | Ja, Sie können die globale Einstellung bei der Clustererstellung außer Kraft setzen. | Ja, mit U2+ können Sie die globale Einstellung bei der Clusteraktualisierung außer Kraft setzen |
trust |
Global | Keine | Ja, Sie können die globale Einstellung bei der Clustererstellung außer Kraft setzen. | Ja, mit U2+ können Sie die globale Einstellung bei der Clusteraktualisierung außer Kraft setzen |
Propagieren von globalen Konfigurationsänderungen an vorhandenen Clustern
Wenn in der TkgServiceConfiguration
globale Einstellungen vorgenommen werden, werden diese nicht automatisch an die vorhandenen Cluster weitergegeben. Wenn Sie beispielsweise Änderungen an den proxy
- oder trust
-Einstellungen in der TkgServiceConfiguration
vornehmen, wirken sich diese Änderungen nicht auf bereits bereitgestellte Cluster aus.
Um eine globale Änderung an einen vorhandenen Cluster weiterzugeben, müssen Sie den Tanzu Kubernetes-Cluster patchen, damit der Cluster die an der TkgServiceConfiguration
vorgenommenen Änderungen übernimmt.
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}}}}"