Consulte los ejemplos para personalizar la API de servicio Tanzu Kubernetes Grid v1alpha2 con opciones de configuración global para la interfaz de redes de contenedor (Container Network Interface, CNI), el servidor proxy y los certificados TLS.

Configurar servicio Tanzu Kubernetes Grid mediante la API de v1alpha2

Para personalizar servicio Tanzu Kubernetes Grid, cambie la CNI predeterminada, agregue un servidor proxy global y agregue certificados de confianza. Consulte Parámetros de configuración para la API v1alpha1 de servicio Tanzu Kubernetes Grid.
apiVersion: run.tanzu.vmware.com/v1alpha2
kind: TkgServiceConfiguration
metadata:
  name: tkg-service-v2-configuration-example
spec:
  defaultCNI: antrea
  proxy:
    #supported format is `http://<user>:<pwd>@<ip>:<port>`
    httpProxy: http://admin:[email protected]:80
    httpsProxy: http://admin:[email protected]:80
    noProxy: [10.246.0.0/16,192.168.144.0/20,192.168.128.0/20]
  trust: 
    additionalTrustedCAs:
      - name: CompanyInternalCA-1
        data: LS0tLS1C...LS0tCg==
        #where "..." is the middle section of the long base64 string
      - name: CompanyInternalCA-2
        data: MTLtMT1C...MT0tPg==        
  defaultNodeDrainTimeout: 0
Precaución: La edición de la especificación de servicio Tanzu Kubernetes Grid produce cambios globales en todos los clústeres aprovisionados por ese servicio, incluidos los clústeres nuevos y los existentes que se actualizan de forma manual o automática.

Requisito previo: Configurar la edición de Kubectl

Para escalar un clúster de Tanzu Kubernetes, actualice el manifiesto del clúster mediante el comando kubectl edit tanzukubernetescluster/CLUSTER-NAME. El comando kubectl edit abre el manifiesto del clúster en el editor de texto definido por las variables de entorno KUBE_EDITOR o EDITOR. Para obtener instrucciones sobre cómo configurar la variable de entorno, consulte Especificar un editor de texto predeterminado para Kubectl.

Al guardar los cambios en la especificación, kubectl informa de que las ediciones se registraron correctamente. Para cancelar, simplemente cierre el editor sin guardar.

Configurar la CNI predeterminada

servicio Tanzu Kubernetes Grid proporciona una interfaz de redes de contenedor (Container Network Interface, CNI) predeterminada para los clústeres de Tanzu Kubernetes. La configuración predeterminada permite crear clústeres sin que para ello sea necesario especificar la CNI. Para cambiar el valor de CNI predeterminado, edite la especificación del servicio.

servicio Tanzu Kubernetes Grid admite dos CNI: Antrea y Calico, de las cuales Antrea es la predeterminada. Para obtener más información, consulte Redes de clústeres de servicio Tanzu Kubernetes Grid.

También es posible anular la CNI predeterminada. Para ello, especifique de forma explícita la CNI que se va a utilizar. Como alternativa, puede cambiar la CNI predeterminada mediante la edición del controlador del servicio de TKG para las CNI.
  1. Realice la autenticación con clúster supervisor.
    kubectl vsphere login --server=SVC-IP-ADDRESS --vsphere-username USERNAME
  2. Cambie el contexto al espacio de nombres de vSphere de destino.
    kubectl config use-context tkgs-cluster-ns
  3. Indique la CNI predeterminada.
    kubectl get tkgserviceconfigurations
    Resultado de ejemplo:
    NAME                                 DEFAULT CNI
    tkg-service-configuration            antrea
    
  4. Cargue para editar la especificación de servicio Tanzu Kubernetes Grid.
    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.

  5. Edite el valor de spec.defaultCNI.
    Por ejemplo, cambie desde:
    spec:
      defaultCNI: antrea
    Cambie a:
    spec:
      defaultCNI: calico
  6. 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.

  7. Compruebe que se haya actualizado la CNI predeterminada.
    kubectl get tkgserviceconfigurations
    Se actualiza la CNI predeterminada. Cualquier clúster aprovisionado con la configuración de red predeterminada utiliza la CNI predeterminada.
    NAME                                 DEFAULT CNI
    tkg-service-configuration            calico
    

Configurar un servidor proxy global

Para habilitar un servidor proxy global, agregue los parámetros del servidor proxy a TkgServiceConfiguration. Si desea ver una descripción de los campos requeridos, consulte Parámetros de configuración para la API v1alpha1 de servicio Tanzu Kubernetes Grid.
  1. Realice la autenticación con clúster supervisor.
    kubectl vsphere login --server=SVC-IP-ADDRESS --vsphere-username USERNAME
  2. Cambie el contexto al espacio de nombres de vSphere de destino.
    kubectl config use-context tkgs-cluster-ns
  3. Obtener la configuración actual.
    kubectl get tkgserviceconfigurations
    Resultado de ejemplo:
    NAME                        DEFAULT CNI
    tkg-service-configuration   antrea
  4. Cargue para editar la especificación de servicio Tanzu Kubernetes Grid.
    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.

  5. Agregue la subsección spec.proxy con cada campo que se pide, incluidos httpProxy, httpsProxy y noProxy.
    apiVersion: run.tanzu.vmware.com/v1alpha1
    kind: TkgServiceConfiguration
    metadata:
      ...
      name: tkg-service-configuration-example
      resourceVersion: "44170525"
      selfLink: /apis/run.tanzu.vmware.com/v1alpha1/tkgserviceconfigurations/tkg-service-configuration
      uid: 10347195-5f0f-490e-8ae1-a758a724c0bc
    spec:
      defaultCNI: antrea
      proxy:
        httpProxy: http://<user>:<pwd>@<ip>:<port>
        httpsProxy: http://<user>:<pwd>@<ip>:<port>
        noProxy: [SVC-POD-CIDRs, SVC-EGRESS-CIDRs, SVC-INGRESS-CIDRs]
  6. Rellene cada campo de proxy con los valores adecuados. Si desea ver una descripción de cada campo, consulte Parámetros de configuración para la API v1alpha1 de servicio Tanzu Kubernetes Grid.

    Los valores requeridos para el campo noProxy provienen de la Red de cargas de trabajo del clúster supervisor. Consulte la imagen en el tema anterior sobre dónde obtener estos valores.

    Por ejemplo:
    apiVersion: run.tanzu.vmware.com/v1alpha1
    kind: TkgServiceConfiguration
    metadata:
      ...
      name: tkg-service-configuration-example
      resourceVersion: "44170525"
      selfLink: /apis/run.tanzu.vmware.com/v1alpha1/tkgserviceconfigurations/tkg-service-configuration
      uid: 10347195-5f0f-490e-8ae1-a758a724c0bc
    spec:
      defaultCNI: antrea
      proxy:
        httpProxy: http://user:[email protected]:3128
        httpsProxy: http://user:[email protected]:3128
        noProxy: [10.246.0.0/16,192.168.144.0/20,192.168.128.0/20]
  7. Para aplicar los cambios, guarde el archivo en el editor de texto. Para cancelar, cierre el editor sin guardar.

    Al guardar los cambios en el editor de texto, kubectl actualiza servicio Tanzu Kubernetes Grid con la configuración definida en la especificación de servicio de tkg-service-configuration.

  8. Compruebe que el servicio Tanzu Kubernetes Grid se haya actualizado con la configuración del proxy.
    kubectl get tkgserviceconfigurations -o yaml
  9. Para comprobarlo, aprovisione el clúster Tanzu Kubernetes. Consulte Flujo de trabajo para aprovisionar clústeres de Tanzu Kubernetes mediante la API v1alpha2 de TKGS.
    Utilice el siguiente comando para confirmar que el clúster está utilizando el proxy.
    kubectl get tkc CLUSTER-NAME -n NAMESPACE -o yaml

Configuración de un proxy basado en certificados

El uso de un servidor proxy para enrutar el tráfico de Internet es un requisito estricto en algunos entornos. Por ejemplo, una empresa de un sector con muchas regulaciones, como una entidad financiera, requiere que todo el tráfico de Internet pase por un proxy corporativo.

Puede configurar servicio Tanzu Kubernetes Grid para aprovisionar clústeres de Tanzu Kubernetes para que utilicen un servidor proxy para el tráfico HTTP/S saliente. Para obtener más información, consulte Parámetros de configuración para la API v1alpha1 de servicio Tanzu Kubernetes Grid.

Como se muestra en el ejemplo, puede agregar certificados de confianza para el servidor proxy a la especificación TkgServiceConfiguration.
apiVersion: run.tanzu.vmware.com/v1alpha1
kind: TkgServiceConfiguration
metadata:
  name: tkg-service-configuration-example
spec:
  defaultCNI: antrea
  proxy:
    httpProxy: http://user:[email protected]:3128
    httpsProxy: http://user:[email protected]:3128
    noProxy: [10.246.0.0/16,192.168.144.0/20,192.168.128.0/20]
  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
  defaultNodeDrainTimeout: 0

Configuración del registro privado externo

Puede configurar servicio Tanzu Kubernetes Grid con certificados personalizados para conectar clústeres de Tanzu Kubernetes con un registro privado externo. Para obtener más información, consulte Usar un registro de contenedor externo con clústeres de Tanzu Kubernetes.
apiVersion: run.tanzu.vmware.com/v1alpha1
kind: TkgServiceConfiguration
metadata:
  name: tkg-service-configuration-example
spec:
  defaultCNI: antrea
  trust:
    additionalTrustedCAs:
      - name: harbor-vm-cert
        data: <<<base64-encoded string of a PEM encoded public cert>>>>