Puede utilizar un registro de contenedor externo con pods de clúster de TKG.
Solucionar errores al extraer imágenes de un registro de contenedor
Si configura TKG con los certificados en los que confiar y agrega el certificado autofirmado al clúster kubeconfig, debería poder extraer correctamente una imagen de contenedor de un registro privado que use ese certificado autofirmado.
kubectl describe pod PODNAME
Este comando muestra el estado detallado y los mensajes de error para un pod determinado. Un ejemplo de intento de extracción de una imagen antes de agregar certificados personalizados al clúster:
Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal Scheduled 33s default-scheduler ... Normal Image 32s image-controller ... Normal Image 15s image-controller ... Normal SuccessfulRealizeNSXResource 7s (x4 over 31s) nsx-container-ncp ... Normal Pulling 7s kubelet Waiting test-gc-e2e-demo-ns/testimage-8862e32f68d66f727d1baf13f7eddef5a5e64bbd-v10612 Warning Failed 4s kubelet failed to get images: ... Error: ... x509: certificate signed by unknown authority
kubectl get pods
ErrImagePull
también se puede ver en la vista de estado general del pod:
NAME READY STATUS RESTARTS AGE testimage-nginx-deployment-89d4fcff8-2d9pz 0/1 Pending 0 17s testimage-nginx-deployment-89d4fcff8-7kp9d 0/1 ErrImagePull 0 79s testimage-nginx-deployment-89d4fcff8-7mpkj 0/1 Pending 0 21s testimage-nginx-deployment-89d4fcff8-fszth 0/1 ErrImagePull 0 50s testimage-nginx-deployment-89d4fcff8-sjnjw 0/1 ErrImagePull 0 48s testimage-nginx-deployment-89d4fcff8-xr5kg 0/1 ErrImagePull 0 79sLos errores “x509: certificado firmado por entidad desconocida” y “ErrImagePull” indican que el clúster no está configurado con el certificado correcto para conectarse al registro de contenedor privado. Falta el certificado o está mal configurado.
Si experimenta errores al conectarse a un registro privado después de configurar los certificados, puede comprobar si los certificados aplicados en la configuración se aplican al clúster. Puede comprobar si los certificados se aplicaron correctamente en su configuración mediante SSH.
- Compruebe la carpeta
/etc/ssl/certs/
en busca de archivos denominadostkg-<cert_name>.pem
, donde<cert_name>
es la propiedad "name" del certificado agregado enTkgServiceConfiguration
. Si los certificados coinciden con lo que está presente enTkgServiceConfiguration
, y sigue sin poder usarse un registro privado, complete el siguiente paso para profundizar en el diagnóstico. - Ejecute la siguiente prueba de conexión openssl en el servidor de destino mediante certificados autofirmados con el comando
openssl s_client -connect hostname:port_num
, dondehostname
es el nombre de host o el nombre de DNS del registro privado que utiliza certificados autofirmados, yport_num
es el número de puerto en el que se ejecuta el servicio (por lo general, el puerto 443 para HTTPS).Puede comprobar exactamente qué error devuelve openssl cuando intenta conectarse al endpoint que utiliza certificados autofirmados y solucionar la situación desde allí; por ejemplo, agregando los certificados correctos a
TkgServiceConfiguration
. Si el clúster de TKG está integrado con el certificado incorrecto, deberá actualizar la configuración de TKG con los certificados correctos, eliminar el clúster de TKG y, a continuación, volver a crearlo con la configuración que contiene los certificados correctos. - Compruebe que el contenido del mapa de datos del secreto tenga doble codificación base64. 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.