Puede personalizar la Configuración del servicio TKG para clústeres de TKG de aprovisionados mediante la API v1alpha3, incluida la interfaz de red de contenedor (Container Network Interface, CNI), el servidor proxy y los certificados TLS.
Acerca de la personalización de TkgServiceConfiguration
Si desea configurar los ajustes globales para clústeres de Tanzu Kubernetes, modifique TkgServiceConfiguration. Esta configuración permite establecer la CNI predeterminada, agregar un servidor proxy global y agregar uno o varios certificados TLS de confianza.
TkgServiceConfiguration
se aplicará a todos los clústeres de TKG aprovisionados por ese servicio. Si se inicia una actualización gradual, ya sea de forma manual o mediante actualización, los clústeres se actualizan según la especificación de servicio modificada.
Especificación TkgServiceConfiguration
TkgServiceConfiguration
proporciona campos para configurar la instancia de
Tanzu Kubernetes Grid.
key-name
), un guion bajo (como
KEY_NAME
) o un punto (como
key.name
). No puede utilizar un espacio en un nombre de clave.
apiVersion: run.tanzu.vmware.com/v1alpha3 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
Especificación de TkgServiceConfiguration anotada
TkgServiceConfiguration
.
apiVersion: run.tanzu.vmware.com/v1alpha3 kind: TkgServiceConfiguration #valid config key must consist of alphanumeric characters, '-', '_' or '.' 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 from Workload Network: [Namespace Netowrk, Ingress, Egress] 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
TkgServiceConfiguration
, esa información de proxy se propaga al manifiesto del clúster después de la implementación inicial del clúster. La configuración global del proxy se agrega al manifiesto del clúster solo si no hay ningún campo de configuración de proxy presente cuando se crea el clúster. En otras palabras, la configuración por clúster tiene prioridad y sobrescribirá la configuración global del proxy.
Especificación de TkgServiceConfiguration de ejemplo
El siguiente YAML enumera y describe los campos configurables para cada uno de los parámetros de especificación de TkgServiceConfiguration
.
apiVersion: run.tanzu.vmware.com/v1alpha3 kind: TkgServiceConfiguration metadata: name: tkgserviceconfiguration_example spec: defaultCNI: calico proxy: #supported format is `http://<user>:<pwd>@<ip>:<port>` httpProxy: http://admin:[email protected]:80 httpsProxy: http://admin:[email protected]:80 #noProxy vaulues are from Workload Network: [Namespace Network, Ingress, Egress] noProxy: [10.246.0.0/16,192.168.144.0/20,192.168.128.0/20] trust: additionalTrustedCAs: #name is the name of the public cert - name: CompanyInternalCA-1 #data is base64-encoded string of a PEM encoded public cert data: LS0tLS1C...LS0tCg== #where "..." is the middle section of the long base64 string - name: CompanyInternalCA-2 data: MTLtMT1C...MT0tPg== defaultNodeDrainTimeout: 0
Cómo editar TkgServiceConfiguration
- Configure la edición de Kubectl. Consulte Configurar un editor de texto para Kubectl.
- Realice la autenticación con Supervisor.
kubectl vsphere login --server=SVC-IP-ADDRESS --vsphere-username USERNAME
- Cambie el contexto al espacio de nombres de vSphere de destino.
kubectl config use-context vSphere-Namespace
- Obtenga la especificación de TkgServiceConfiguration.
kubectl get tkgserviceconfigurations
- Cargue para editar la especificación de TkgServiceConfiguration.
kubectl edit tkgserviceconfigurations tkg-service-configuration
El sistema abre la especificación
tkg-service-configuration
en el editor de texto predeterminado que definen las variables de entorno KUBE_EDITOR o EDITOR. - Edite TkgServiceConfiguration según sus requisitos.
- Para aplicar los cambios, guarde el archivo en el editor de texto. Para cancelar, cierre el editor sin guardar.
Al guardar el cambio en el editor de texto, kubectl actualiza la especificación de servicio de
tkg-service-configuration
. - Compruebe que la especificación de TkgServiceConfiguration se haya actualizado.
kubectl get tkgserviceconfigurations
Propagar cambios de configuración global a clústeres existentes
Los ajustes que se realizaron a nivel global en TkgServiceConfiguration
no se propagan automáticamente a los clústeres existentes. Por ejemplo, si realiza cambios en los ajustes de proxy
o trust
en TkgServiceConfiguration
, los cambios no afectarán los clústeres que ya están aprovisionados.
Para propagar manualmente un cambio global a un clúster existente, debe aplicar una revisión al clúster de Tanzu Kubernetes para que herede los cambios realizados en 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}}}}"