Consulte este ejemplo para aprovisionar un clúster v1beta1 con uno o varios certificados de CA de confianza adicionales.

Ejemplo de v1beta1: clúster con certificados de CA de confianza adicionales

El API de clúster v1beta1 proporciona la variable trust para aprovisionar un clúster con uno o varios certificados de CA de confianza adicionales.
Tabla 1. Variable de confianza de la API v1beta1
Campo Descripción
trust Marcador de sección. No acepta datos.
additionalTrustedCAs Marcador de sección. Incluye una matriz de certificados con el name para cada uno.
name El nombre definido por el usuario para el campo de asignación de data en el secreto de Kubernetes que contiene el certificado de CA en formato PEM con codificación base64 doble.
Nota: Se requiere doble codificación base64. Si el contenido no tiene doble codificación base6, no se puede procesar el archivo PEM resultante.
El siguiente ejemplo demuestra cómo agregar el secreto de Kubernetes que contiene un certificado de CA a una especificación de clúster de la API v1beta1.
#cluster-with-trusted-private-reg-cert.yaml
apiVersion: cluster.x-k8s.io/v1beta1
kind: Cluster
metadata:
  name: cluster01
  namespace: tkgs-cluster-ns
spec:
  clusterNetwork:
    services:
      cidrBlocks: ["198.52.100.0/12"]
    pods:
      cidrBlocks: ["192.101.2.0/16"]
    serviceDomain: "cluster.local"
  topology:
    class: tanzukubernetescluster
    version: v1.26.5+vmware.2-fips.1-tkg.1
    controlPlane:
      replicas: 3
    workers:
      machineDeployments:
        - class: node-pool
          name: node-pool-01
          replicas: 3
    variables:
      - name: vmClass
        value: guaranteed-medium
      - name: storageClass
        value: tkgs-storage-profile
      - name: defaultStorageClass
        value: tkgs-storage-profile
      - name: trust
        value:
          additionalTrustedCAs:
          - name: additional-ca-1
El siguiente ejemplo muestra el secreto de Kubernetes que incluye un certificado de CA de confianza adicional.
#additional-ca-1.yaml
apiVersion: v1
data:
  additional-ca-1: TFMwdExTMUNSGlSzZ3Jaa...VVNVWkpRMEMwdExTMHRDZz09
kind: Secret
metadata:
  name: cluster01-user-trusted-ca-secret
  namespace: tkgs-cluster-ns
type: Opaque
Donde:
  • El valor de la asignación de data del secreto es una cadena definida por el usuario que es el nombre del certificado de CA (additional-ca-1 en este ejemplo), cuyo valor es el certificado de CA en formato PEM con codificación base64 doble.
  • En la sección metadata, el secreto debe tener el nombre CLUSTER-NAME-user-trusted-ca-secret, donde CLUSTER-NAME es el nombre del clúster. Este secreto se debe crear en el mismo espacio de nombres de vSphere que el clúster.
Para codificar doble en base64 el contenido del certificado de CA.

Procedimiento: Nuevo clúster

Complete el siguiente procedimiento para incluir uno o varios certificados de CA de confianza adicionales en un nuevo clúster de TKGS.
  1. Doble codificación base64 del contenido de un certificado de CA.
  2. Cree un secreto de Kubernetes que contenga el nombre de la asignación de datos cuyo valor sea un certificado de CA en formato PEM con doble codificación base64.
  3. En la especificación del clúster, rellene la variable trust.additionalTrustedCAs con el nombre de la asignación de datos.
  4. Aprovisione el clúster como lo haría normalmente.

    Consulte Flujo de trabajo para aprovisionar clústeres de TKG mediante Kubectl.

  5. Cuando el clúster se aprovisiona correctamente, el certificado de CA que agregó es de confianza para el clúster.

Procedimiento: Clúster existente

Complete el siguiente procedimiento para agregar uno o varios certificados de CA de confianza adicionales a un clúster existente.
  1. Doble codificación base64 del contenido de un certificado de CA.
  2. Cree un secreto de Kubernetes que contenga el nombre de la asignación de datos cuyo valor sea un certificado de CA en formato PEM con doble codificación base64.
  3. Compruebe que configuró kubectl editing.

    Consulte Configurar un editor de texto para Kubectl.

  4. Edite la especificación del clúster.
    kubectl edit tanzukubernetescluster/tkgs-cluster-name
  5. Agregue la sección trust.additionalTrustedCAs a la especificación.
  6. Rellene el campo de additionalTrustedCAs con el nombre de la asignación de datos en el secreto que contiene el certificado de CA en formato PEM con codificación base64 doble
  7. Guarde los cambios en el editor de texto y compruebe que kubectl los haya registrado.
    kubectl edit cluster/tkgs-cluster-name
    cluster.run.tanzu.vmware.com/tkgs-cluster-name edited
  8. Cuando se inicia una actualización gradual para el clúster, se agregan los certificados de CA de confianza adicionales.

    Consulte Información sobre el modelo de actualización gradual para clústeres de Servicio TKG.

Comprobar los certificados de CA de confianza adicionales

Los certificados de CA de confianza adicionales agregados al clúster se incluyen en el archivo kubeconfig del clúster.

Rotar el certificado

Para rotar un certificado, cree un nuevo secreto y edite la especificación del clúster con el valor adecuado. Esto activará una actualización gradual del clúster.
Nota: El sistema no supervisa los cambios en CLUSTER-NAME-user-trusted-ca-secret. Si cambia el valor de asignación de data, estos cambios no se verán reflejados en el clúster. Debe crear un nuevo secreto y su asignación de datos name a trust.additionalTrustCAs.

Solucionar los problemas de certificados de CA de confianza adicionales

Consulte Solucionar errores con certificados de CA de confianza adicionales.

Caso práctico

El caso práctico más común es para agregar una CA de confianza adicional para conectarse a un registro de contenedor. Consulte Integrar clústeres de Servicio TKG con un registro de contenedor privado.