es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo configurar Harbor para SCDF?

Estoy intentando utilizar el registro Harbor con SCDF 2.9.1 en microk8s 1.18.20.
He configurado con éxito SCDF para recuperar las etiquetas de mis aplicaciones Docker añadiendo esto en el Mapa de Configuración del servidor SCDF:

spring:
  cloud:
    dataflow:
      container:
        registry-configurations:
          harbor:
            registry-host: myhost
            authorization-type: dockeroauth2
            user: myuser
            secret: mypwd
            disable-ssl-verification: true
            extra:
              "registryAuthUri" : 'https://myhost/service/token?service=harbor-registry&scope=repository:{repository}:pull'

Luego, para obtener imágenes, creé un secreto con esta línea de comando (después de configurar mi demonio Docker local):

microk8s.kubectl create secret generic harbor-credentials \
    --from-file=.dockerconfigjson=/home/myuser/.docker/config.json \
    --type=kubernetes.io/dockerconfigjson

Y cambie el Mapa de Configuración de Skipper y SCDF para usarlo con:

spring.cloud.skipper.server.platform.kubernetes.accounts.default.imagePullSecret=harbor-credentials
spring.cloud.dataflow.task.platform.kubernetes.accounts.default.imagePullSecret=harbor-credentials

Pero cuando intento desplegar mi aplicación en un flujo, obtengo este error al obtener la imagen:

Head "https://myhost/v2/scdf/myapp/manifests/latest": x509: certificate signed by unknown authority

¿Cómo y dónde debo configurar el certificado autofirmado de Harbor para que SCDF/Skipper pueda desplegar aplicaciones?
Además, idealmente, preferiría quitar disable-ssl-verification: true para las etiquetas Docker también.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para configurar un certificado autofirmado para Harbor en SCDF, debe realizar los siguientes pasos:

    1. Recupere el certificado de su instancia de Harbor usando el siguiente comando:
      openssl s_client -showcerts -connect myhost:443 /dev/null | openssl x509 -outform PEM > myhost.crt
      

      Este comando devolverá un archivo de certificado llamado myhost.crt.

    2. Cree un secreto de Kubernetes para el certificado usando el siguiente comando:

      microk8s.kubectl create secret generic harbor-certificate --from-file=myhost.crt
      

      Este comando creará un secreto llamado harbor-certificate usando el archivo myhost.crt.

    3. Actualice los mapas de configuración de su servidor SCDF y Skipper para usar el certificado agregando las siguientes entradas:

      spring.cloud.dataflow.task.platform.kubernetes.accounts.default.imagePullSecret=harbor-credentials,habor-certificate
      spring.cloud.skipper.server.platform.kubernetes.accounts.default.imagePullSecret=harbor-credentials,harbor-certificate
      

      Esto agregará el secreto harbor-certificate a la lista de secretos utilizados para la descarga de imágenes.

    4. Reinicie sus pods de SCDF y Skipper para que los cambios tengan efecto.

    Con estos pasos, debería poder implementar sus aplicaciones desde Harbor sin la bandera disable-ssl-verification: true y con la seguridad adicional de usar un certificado autofirmado.

Comments are closed.