Puede personalizar servicio Tanzu Kubernetes Grid con ajustes globales de funciones clave, como la interfaz de redes de contenedor (Container Network Interface, CNI), el servidor proxy y los certificados TLS. Tenga presentes las consideraciones y las concesiones necesarias al implementar la funcionalidad global frente a la funcionalidad por clúster.
Especificación de TkgServiceConfiguration v1alpha2
TkgServiceConfiguration
proporciona campos para configurar la instancia de
servicio 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
se aplicará a todos los clústeres de
Tanzu Kubernetes 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 de TkgServiceConfiguration v1alpha2 anotada
TkgServiceConfiguration
. Para ver ejemplos, consulte
Ejemplos de configuración de la API de servicio Tanzu Kubernetes Grid v1alpha1.
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
Requisitos de configuración del servidor proxy
- Los parámetros requeridos del
proxy
sonhttpProxy
,httpsProxy
ynoProxy
. Si agrega la secciónproxy
, los tres campos son obligatorios. - Puede conectarse al servidor proxy mediante HTTP. No se admiten conexiones HTTPS.
- Los valores de
spec.proxy.noProxy
requeridos se obtienen de la Red de cargas de trabajo. No debe usar proxy para la Red de espacio de nombres (anteriormente denominada CIDR de pods), la Entrada (anteriormente denominada CIDR de entrada) y la Salida (anteriormente denominada CIDR de salida) en el camponoProxy
. Consulte las imágenes de ejemplo a continuación. - No es necesario incluir los CIDR de servicios en el campo
noProxy
. Los clústeres de Tanzu Kubernetes no interactúan con esta subred. - No es necesario incluir los valores
network.services.cidrBlocks
ynetwork.pods.cidrBlocks
de la especificación del clúster de Tanzu Kubernetes en el camponoProxy
. Estas subredes no son objeto de proxy automáticamente. - No es necesario incluir
localhost
y127.0.0.1
en el camponoProxy
. Los endpoints no son objeto de proxy automáticamente.
Cuándo utilizar las opciones de configuración globales o por clúster
TkgServiceConfiguration
es una especificación global que afecta a todos los clústeres de Tanzu Kubernetes aprovisionados por la instancia de servicio Tanzu Kubernetes Grid.
TkgServiceConfiguration
, tenga en cuenta las alternativas por clúster que pueden satisfacer su caso práctico, en lugar de una configuración global.
Configuración | Opción global | Opción por clúster |
---|---|---|
CNI predeterminada | Edite la especificación TkgServiceConfiguration . Consulte Ejemplos de configuración de la API de servicio Tanzu Kubernetes Grid v1alpha1. |
Especifique la CNI en la especificación del clúster. Por ejemplo, Antrea es la CNI predeterminada. Para usar Calico, especifíquelo en el YAML del clúster. Consulte Ejemplos del aprovisionamiento de clústeres de Tanzu Kubernetes mediante la API de servicio Tanzu Kubernetes Grid v1alpha1. |
Servidor proxy | Edite la especificación TkgServiceConfiguration . Consulte Ejemplos de configuración de la API de servicio Tanzu Kubernetes Grid v1alpha1. |
Incluya los parámetros de configuración del servidor proxy en la especificación del clúster. Consulte Ejemplos del aprovisionamiento de clústeres de Tanzu Kubernetes mediante la API de servicio Tanzu Kubernetes Grid v1alpha1. |
Certificados de confianza | Edite la especificación TkgServiceConfiguration . Existen dos casos de uso: configurar un registro de contenedor externo y una configuración de proxy basada en certificados. Consulte Ejemplos de configuración de la API de servicio Tanzu Kubernetes Grid v1alpha1. |
Sí, puede incluir certificados personalizados por clúster o anular la configuración de trust establecida globalmente en la especificación del clúster. Consulte Ejemplos del aprovisionamiento de clústeres de Tanzu Kubernetes mediante la API de servicio Tanzu Kubernetes Grid v1alpha1. |
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. Para obtener más información, consulte
Parámetros de configuración para la API v1alpha1 de servicio Tanzu Kubernetes Grid.
Antes de editar la especificación TkgServiceConfiguration
, tenga en cuenta las ramificaciones de aplicar la configuración a nivel global.
Campo | Se aplica | Impacto en los clústeres existentes si se agrega o se cambia | Anulación por clúster al crear un clúster | Anulación por clúster al actualizar un clúster |
---|---|---|---|---|
defaultCNI |
Globalmente | Ninguno | Sí, puede anular la configuración global al crear el clúster | No, no puede cambiar la CNI de un clúster existente. Si utilizó la CNI predeterminada configurada globalmente al crear el clúster, no puede cambiarla |
proxy |
Globalmente | Ninguno | Sí, puede anular la configuración global al crear el clúster | Sí, con U2+ puede anular la configuración global al actualizar el clúster |
trust |
Globalmente | Ninguno | Sí, puede anular la configuración global al crear el clúster | Sí, con U2+ puede anular la configuración global al actualizar el clúster |
Propagar cambios de configuración global a clústeres existentes
La configuración realizada a nivel global en TkgServiceConfiguration
no se propaga automáticamente a los clústeres existentes. Por ejemplo, si realiza cambios en la configuración de proxy
o trust
en TkgServiceConfiguration
, dichos cambios no afectarán a los clústeres que ya están aprovisionados.
Para propagar 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}}}}"