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.

De forma opcional, puede configurar servicio Tanzu Kubernetes Grid con parámetros globales.

Precaución: La configuración de servicio Tanzu Kubernetes Grid es una operación global. Esto significa que cualquier cambio que realice en la especificación 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 TkgServiceConfiguration

La especificación TkgServiceConfiguration proporciona campos para configurar la instancia de servicio Tanzu Kubernetes Grid.
apiVersion: run.tanzu.vmware.com/v1alpha1
kind: TkgServiceConfiguration
metadata:
  name: tkg-service-configuration-example
spec:
  defaultCNI: <antrea or calico>
  proxy:
    httpProxy: http://<user>:<pwd>@<ip>:<port>
    httpsProxy: http://<user>:<pwd>@<ip>:<port>
    noProxy: [<array of CIDRs to not proxy>]
  trust:
    additionalTrustedCAs:
      - name: <first-cert-name>
        data: <base64-encoded string of a PEM encoded public cert 1>
      - name: <second-cert-name>
        data: <base64-encoded string of a PEM encoded public cert 2>

Parámetros de la especificación TcardServiceConfiguration

En la tabla se enumeran y describen cada uno de los parámetros de la especificación TkgServiceConfiguration. Para ver ejemplos, consulte Ejemplos de configuración de la API de servicio Tanzu Kubernetes Grid v1alpha1.
Campo Valor Descripción
defaultCNI antrea or calico CNI predeterminada para que utilicen los clústeres. El valor predeterminado es antrea. La otra CNI admitida es calico.
proxy Marcador de sección para los parámetros de proxy. Los parámetros de proxy son httpProxy, httpsProxy y noProxy. Todos los parámetros son obligatorios. Si falta algún parámetro de proxy, no podrá crear clústeres de Tanzu Kubernetes.
httpProxy URI con el formato http://<user>:<pwd>@<ip>:<port> No permite el protocolo https. Si se utiliza https, no se podrán crear clústeres de Tanzu Kubernetes.
httpsProxy URI con el formato http://<user>:<pwd>@<ip>:<port> No permite el protocolo https. Si se utiliza https, no se podrán crear clústeres de Tanzu Kubernetes.
noProxy

Matriz de bloques CIDR que no utilizarán proxy, por ejemplo: [10.246.0.0/16,192.168.144.0/20,192.168.128.0/20].

Obtenga los valores necesarios de la red de carga de trabajo en el clúster supervisor: Pod CIDRs, Ingress CIDRs y Egress CIDRs.

Consulte la imagen a continuación para ver los valores que se deben incluir en el campo de matriz noProxy.

No debe utilizar proxy con las subredes utilizadas por la red de carga de trabajo en el clúster supervisor para pods, entrada y salida.

No es necesario incluir el CIDR de servicios del clúster supervisor en el campo noProxy. Los clústeres de Tanzu Kubernetes no interactúan con dichos servicios.

Los endpoints localhost y 127.0.0.1 automáticamente no se usan como proxy. No es necesario que los agregue al campo noProxy.

Los CIDR de pod y de servicio para los clústeres de Tanzu Kubernetes no se usan como proxy automáticamente. No es necesario que los agregue al campo noProxy.

trust Marcador de sección para los parámetros de trust. No acepta datos.
additionalTrustedCAs Acepta una matriz de certificados con name y data para cada uno. No acepta datos.
name Cadena El nombre del certificado de TLS.
data Cadena La cadena codificada en base64 de un certificado público con codificación PEM.

Obtenga los valores de noProxy requeridos de la red de carga de trabajo del clúster supervisor como se muestra en la imagen.

La ventana Red de carga de trabajo con los valores de CIDR del pod, CIDR de ingreso y CIDR de egreso destacados.

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.

Antes de editar TkgServiceConfiguration, tenga en cuenta las alternativas por clúster que pueden satisfacer su caso práctico, en lugar de una configuración global.
Tabla 1. Opciones de configuración global frente a opciones por clúster
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.
Nota: Si se configura un proxy global en 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.

Por ejemplo:
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}}}}"