Puede utilizar un registro de contenedor externo con pods de clúster de TKG.

Caso de uso del registro de contenedor privado

Los registros de contenedores proporcionan una función crítica para las implementaciones de Kubernetes, y sirven como repositorio centralizado para almacenar y compartir imágenes de contenedor. El registro de contenedor público utilizado con más frecuencia es Docker Hub. Existen muchas ofertas de registros de contenedores privados. VMware Harbor es un registro de contenedor privado, nativo en la nube y de código abierto que viene con Supervisor.

Configuración del registro de contenedor privado

Para utilizar un registro privado con un clúster de TKG, configure el clúster de TKG con uno o más certificados autofirmados para que proporcione contenido de registro privado a través de HTTPS. En la especificación del clúster, incluya una sección trust con el par de campos additionalTrustedCAs. Puede definir cualquier número de certificados autofirmados en los que el clúster de TKG debe confiar. Esta funcionalidad permite definir fácilmente una lista de certificados y actualizar esos certificados en caso de que necesiten rotación.

Campos de confianza para certificados de registro de contenedor privado

Agregue una entrada de certificado (cadena con codificación Base64 de un certificado público con codificación PEM) a la sección additionalTrustedCAs de la especificación del clúster de TKG.

Tabla 1. Campos de confianza para registros privados
Campo Descripción
trust Marcador de sección. No acepta datos.
additionalTrustedCAs Marcador de sección. Incluye una matriz de certificados con nombre y datos para cada uno.
name El nombre del certificado de TLS.
data La cadena con codificación doble Base64 de un certificado público con codificación PEM almacenada en texto sin formato.
Nota: Se requiere doble codificación base64. Si el contenido del valor de la asignación de datos no está doblemente codificado con Base64, no se puede procesar el archivo PEM resultante.

Ejemplo de API v1alpha3

En el siguiente ejemplo se muestra cómo crear un clúster de TKG 2 con un certificado de registro privado. Consulte la Ejemplo de v1alpha3: TKC con red personalizada para obtener la especificación completa.
Nota: Para editar un clúster existente y agregar los campos de certificado del registro privado, utilice el método de kubectl edit como se describe aquí: Configurar un editor de texto para Kubectl.
apiVersion: run.tanzu.vmware.com/v1alpha3
kind: TanzuKubernetesCluster
metadata:
  name: tkg2-private-registry
  namespace: tkg2-cluster-ns
spec:
  topology:
    controlPlane:
      ...
    nodePools:
    - name: worker
      ...
  settings:
    network:
      ...
      trust:
        additionalTrustedCAs:
          - name: CompanyInternalCA-1
            data: LS0tLS1C...LS0tCg==
          - name: CompanyInternalCA-2
            data: MTLtMT1C...MT0tPg==

Ejemplo de API v1beta1

El siguiente ejemplo demuestra cómo crear un clúster de TKG con un certificado de registro privado mediante la API v1beta1. Consulte la descripción de la variable trust en la especificación de API de clúster v1beta1.
Nota: Para editar un clúster existente y agregar los campos de certificado del registro privado, utilice el método de kubectl edit como se describe aquí: Configurar un editor de texto para Kubectl.
spec:
  clusterNetwork:
    pods:
      ...
    serviceDomain: 
    services:
      ...
  topology:
    class: tanzukubernetescluster
    controlPlane:
      ...
    variables:
    - name: storageClass
      value: tkg2-storage-profile
    - name: trust
      value:
        additionalTrustedCAs:
        - name: additional-ca-1

Administrar certificados de registro de contenedor privado

Para rotar un certificado, el administrador de VI o el ingeniero de desarrollo y operaciones cambia el contenido del certificado en la especificación del clúster de TKG y aplica esa configuración para activar una actualización gradual del clúster.

Para eliminar un certificado de la lista de certificados, elimínelo y aplique la especificación actualizada, lo que activa una actualización gradual.