Implementar un registro de Harbor sin conexión en vSphere

En este tema se describe cómo instalar un registro de imagen de Harbor privado desde un archivo OVA descargado para proporcionar las imágenes necesarias para implementar Tanzu Kubernetes Grid (TKG) en un entorno de vSphere sin conexión. El registro de Harbor resultante se ejecuta junto a TKG para almacenar y administrar las imágenes de componentes que utiliza TKG.

Importante

  • Esta implementación de Harbor basada en máquina virtual solo se admite para alojar imágenes del sistema de TKG en un entorno restringido por Internet o aislado. Para implementar un Harbor escalable y de alta disponibilidad que pueda administrar grandes cantidades de imágenes para aplicaciones alojadas en un entorno de producción, implemente el paquete de Harbor en clústeres de TKG como se describe en Instalar Harbor para el registro de servicios en Crear y administrar clústeres de carga de trabajo de TKG 2.3 con CLI de Tanzu.

  • Notary y Chartmuseum han quedado obsoletos desde Harbor v2.6 y están programados para eliminarse en una versión futura, como se indica en las notas de la versión de Harbor v2.6.0. Cambie a Sigstore Cosign para la verificación y la firma del contenedor.

Requisitos previos

Implementar Harbor

Para implementar Harbor desde un archivo OVA:

  1. En vCenter, haga clic con el botón secundario en un clúster vSphere y elija Implementar plantilla OVF (Deploy OVF Template)….

    Captura de pantalla de instalación de Harbor

  2. Aparecerá la ventana Implementar plantilla OVF (Deploy OVF Template). Seleccione Archivo local y desplácese hasta la ubicación del archivo OVA de Harbor descargado.

  3. Haga clic en Siguiente (NEXT) en la parte inferior derecha. Aparecerá una serie de paneles de configuración.

  4. Verificación de origen (Source Verification): Haga clic en Sí (YES).

    Captura de pantalla de instalación de Harbor

  5. Nombre de máquina virtual (Virtual machine name): Introduzca el nombre que elija para la máquina virtual que ejecuta la instancia de Harbor. Haga clic en Siguiente (NEXT).

    Captura de pantalla de instalación de Harbor

  6. Seleccionar un recurso informático (Select a compute resource): Deje la opción predeterminada y haga clic en Siguiente (NEXT).

    Captura de pantalla de instalación de Harbor

    Este paso puede tardar unos minutos, ya que vSphere descarga y procesa la plantilla OVF.

  7. Revisar detalles (Review details): Haga clic en Siguiente (NEXT).

    Captura de pantalla de instalación de Harbor

  8. Contratos de licencia (License agreements): Acepte la licencia y haga clic en Siguiente (NEXT).

    Captura de pantalla de instalación de Harbor

  9. Seleccionar almacenamiento (Select storage): Seleccione vsanDatastore y haga clic en Siguiente (NEXT).

    Captura de pantalla de instalación de Harbor

  10. Seleccionar redes (Select networks): Elija la Red de máquina virtual (VM Network) predeterminada y haga clic en Siguiente (NEXT).

    Captura de pantalla de instalación de Harbor

  11. Personalizar plantilla (Customize template) > Credenciales de máquina virtual (VM Credentials):

    Captura de pantalla de instalación de Harbor

    1. Contraseña raíz (Root Password) (obligatorio): La contraseña preferida para la cuenta de usuario root en la máquina virtual. Debe tener entre 8 y 128 caracteres.

    2. Permitir SSH a través de raíz (Allow SSH via Root): Deje el valor predeterminado, habilitado, para permitir el acceso ssh a la máquina virtual como usuario root.

  12. Personalizar plantilla > Configuraciones de Harbor:

    Captura de pantalla de instalación de Harbor

    1. Nombre de host (opcional): Si se proporciona, el nombre de host de Harbor como un FQDN, como yourdomain.com. No puede ser una dirección IP o localhost.

      Si especifica el Nombre del host, la propiedad SAN (subject Alt Names) solo contiene la información de DNS; no se proporcionó información de IP.

      Si no especifica el Nombre del host, la propiedad SAN solo contiene la información de IP y no se proporciona ninguna información de DNS.

    2. Contraseña de administrador (Administrator Password) (obligatorio): Contraseña del usuario admin de Harbor. La utilizan los administradores para acceder a la interfaz de usuario de Harbor y los contenedores cliente para extraer e insertar imágenes. Debe tener de 8 a 128 caracteres.

    3. Contraseña de base de datos de Harbor (Harbor Database Password): Contraseña de la base de datos interna de Harbor. Si se proporciona, debe tener entre 8 y 128 caracteres.

    4. Habilitar escáner predeterminado de Harbor (Enable Harbor Default Scanner): Habilite esta opción para instalar el escáner Trivy y activarlo para escanear las imágenes a medida que se cargan en Harbor.

    5. Usar certificado autofirmado para Harbor (Use Self-signed Certificate For Harbor):

      • Habilite esta opción para utilizar certificados autofirmados y deje en blanco los campos Certificado de CA (CA Certificate), Certificado de servidor (Server Certificate) y Clave de servidor (Server Key).

      • De lo contrario, desactive Uso certificado autofirmado para Harbor (Use Self-signed Certificate For Harbor) y pegue el contenido del archivo de varias líneas para el Certificado de CA (CA Certificate), Certificado de servidor (Server Certificate) y Clave de servidor (Server Key). Al pegarlos en el formulario, los valores de varias líneas se convierten en una cadena de una línea con el carácter de espacio como delimitador.

  13. Personalizar plantilla > Configuraciones de redes:

    Captura de pantalla de instalación de Harbor

    1. Dirección IP (IP Address), Máscara de red (Netmask) y Puerta de enlace (Gateway): Una dirección IP estática, una máscara de red y una puerta de enlace para eth0, si existe.

    2. (DNS, Dominio DNS) DNS, DNS Domain: Dominio y servidor DNS para la máquina virtual de Harbor.

  14. (Opcional) Personalizar la plantilla (Customize template) > Configuraciones de usuario (Docker Configurations):

    Captura de pantalla de instalación de Harbor

    Esta configuración es opcional y solo está disponible para archivos OVA con Harbor v2.8.x o versiones posteriores.

    1. Valor de BIP del Daemon de Docker: Un valor de formato CIDR para configurar el daemon de Docker, por ejemplo: 198.18.251.1/24

    2. Base del grupo de direcciones 1, Tamaño del grupo de direcciones 1: La base del grupo de direcciones y el tamaño del grupo de direcciones deben configurarse en pares, si los hubiera. Permitimos como máximo tres pares de la base de grupo de direcciones y el tamaño del grupo de direcciones. Además, la base del grupo de direcciones debe estar en formato CIDR, por ejemplo, 198.18.252.0/22; y el tamaño del grupo de direcciones debe ser un número entero entre 1 y 32.

  15. Listo para completar (Ready to complete): Revise la configuración y haga clic en Finalizar (FINISH).

    Captura de pantalla de instalación de Harbor

Ver y depurar implementación

Implementación de Docker (opcional)

Para archivos OVA con Harbor v2.8.x o versiones posteriores, tiene la opción de establecer una configuración de daemon de Docker para que se ejecute en el archivo OVA, como se configuró en la pestaña Configuraciones de docker (Docker Configurations) descrita anteriormente.

Si introduce argumentos no válidos en Configuraciones de docker (Docker Configurations), se producirá un error tanto en el servicio firstboot systemd como en Docker.

Para comprobar la instalación de Docker, ssh en la máquina virtual de Harbor y ejecute systemctl status firstboot y systemctl status docker. Si el estado del servicio firstboot aparece como Active: failed entonces se produjo un error en la implementación, pero si muestra Active: inactive (dead) y firstboot.service: Succeeded y, a continuación, el servicio docker aparece como Active: active (running), entonces la implementación se realizó correctamente.

Para comprobar los registros para obtener más información, ejecute journalctl -u firstboot y journalctl -u docker.

Implementación de Harbor:

La primera vez que se implementa un archivo OVA de Harbor, Harbor tarda varios minutos en cargar imágenes de Docker.

Para ver el proceso y confirmar que está en progreso, ssh en la máquina virtual y ejecute:

watch docker ps

Si Harbor no se ejecuta después de 5 minutos aproximadamente, recupere el archivo de registro en la máquina virtual para la depuración:

  1. cd /etc/goharbor/harbor && ./harbor-support.sh --include-private

  2. Busque y descomprima el archivo de registro. Tiene un nombre similar a/storage/log/harbor_appliance_logs_2022-11-30T09-39-12Z.tar.gz

Solución de problemas

Error: No se puede recuperar el archivo de manifiesto o de certificado

  1. Si ve Error: Unable to retrieve manifest or certificate file como se indica a continuación, vuelva a intentar implementar el archivo OVA de Harbor.

    Captura de pantalla de instalación de Harbor

No se admite la memoria caché del proxy de Harbor

No se puede utilizar Harbor en la función caché del proxy para ejecutar Tanzu Kubernetes Grid v2.3 en un entorno con acceso a Internet restringido. Puede seguir utilizando una memoria caché de proxy de Harbor para aplicar el proxy a imágenes de versiones anteriores de Tanzu Kubernetes Grid, así como imágenes que no son de Tanzu, como las imágenes de aplicaciones.

Restablecer la contraseña raíz

Si perdió la contraseña root, vuelva a recuperarla siguiendo el procedimiento Establecer una contraseña raíz perdida.

Expandir disco de datos

Una instancia de Harbor implementada a partir de un OVA de tiene dos discos:

  • Disco de datos: contiene archivos de certificado y datos de la aplicación Harbor; montado como /storage.
  • Disco del sistema: contiene datos del sistema de máquina virtual e imágenes de arranque de Harbor, y ejecuta las imágenes de arranque.

Si necesita aumentar el tamaño del disco de datos de Harbor para admitir solicitudes, debe apagar temporalmente la máquina virtual de Harbor mientras cambia la configuración. Si la máquina virtual tiene una dirección IP dinámica, el reinicio de la máquina virtual requiere pasos adicionales, como se describe a continuación.

Para expandir el disco de datos de la instancia de Harbor:

  1. En la vista Hosts y clústeres de vSphere, haga clic con el botón secundario en la máquina virtual de OVA de Harbor y elija Encender > Apagar

    Captura de pantalla de instalación de Harbor

  2. Haga clic con el botón secundario en la máquina virtual de OVA de Harbor y elija Editar configuración:

    Captura de pantalla de instalación de Harbor

  3. Aparece una ventana Editar configuración. En Hardware virtual, aumente el ajuste  Disco duro 2 a la capacidad que prefiera. Haga clic en Aceptar (OK).

    Captura de pantalla de instalación de Harbor

  4. Vuelva a hacer clic con el botón secundario en la máquina virtual OVA de Harbor y seleccione Encender > Apagar para reiniciar la máquina virtual.

    Captura de pantalla de instalación de Harbor

  5. Debido a que reinició la máquina virtual de Harbor, es posible que deba realizar pasos adicionales en función de la configuración de la dirección de host de la máquina virtual:

  6. Dirección IP estática: Sin pasos adicionales.

  7. Dirección IP dinámica: Si la dirección IP de la máquina virtual de Harbor cambió:

    1. Genere un certificado para la nueva dirección IP como se describe en el subproceso Cómo cambiar un certificado de CA de Harbor caducado existente por uno nuevo en el repositorio de Harbor.
    2. Aplique el nuevo certificado a la máquina virtual como se describe en la sección Rotar certificados a continuación.
  8. FQDN: Si cambió la dirección IP de la máquina virtual de Harbor, actualícela en el archivo /etc/hosts o en el registro de DNS.

Rotar certificados

Cuando la dirección IP de la máquina virtual de Harbor haya cambiado, rote su certificado:

  1. ssh en la máquina virtual.

  2. Detenga el servicio de Harbor:

    systemctl stop harbor
    
  3. Realice una copia de seguridad de los archivos server.crt ,server.key y ca.crt del certificado antiguo moviéndolos o poniéndoles otro nombre:

    • server.crt se encuentra en /storage/data/secret/cert/server.crt
    • server.key se encuentra en /storage/data/secret/cert/server.key
    • ca.crt se encuentra en /storage/data/ca_download/ca.crt
  4. Guarde los archivos server.crt ,server.key y ca.crt del certificado nuevo a las ubicaciones anteriores y establezca la propiedad y los permisos de sus archivos en la misma configuración que los archivos antiguos.

  5. Inicie el servicio de Harbor:

    systemctl start harbor
    

Qué hacer a continuación

Después de utilizar este registro de Harbor para implementar un clúster de administración en un entorno con acceso a Internet restringido, puede habilitar que los clústeres de carga de trabajo de TKG usen Harbor de una de estas dos formas:

  • Utilice el registro de Harbor externo. Si este registro utiliza un certificado de CA de confianza, las conexiones entre los clústeres de carga de trabajo y el registro son seguras. Si el registro central utiliza certificados autofirmados, puede desactivar TKG_CUSTOM_IMAGE_REPOSITORY_SKIP_TLS_VERIFY y especificar la opción TKG_CUSTOM_IMAGE_REPOSITORY_CA_CERTIFICATE. Al configurar esta opción, se insertan automáticamente los certificados autofirmados en los clústeres de carga de trabajo.

  • Implemente una segunda instancia de Harbor como servicio compartido dentro de TKG. VMware recomienda implementar el paquete de Harbor como servicio compartido administrado por TKG. Para obtener más información, consulte Instalar Harbor para el registro de servicio.

En infraestructuras con equilibrio de carga, VMware recomienda instalar el servicio empaquetado de DNS externo junto con el servicio de Harbor, como se describe en DNS externo y registro de Harbor.

check-circle-line exclamation-circle-line close-line
Scroll to top icon