Introducción
En el mundo actual de la tecnología, la orquestación de contenedores ha revolucionado la forma en que se desarrollan, despliegan y escalan aplicaciones. Kubernetes se ha consolidado como la plataforma líder para esta tarea. Sin embargo, para operar de manera efectiva en entornos corporativos o privados, es fundamental gestionar adecuadamente las imágenes de contenedores, muchas de las cuales deben almacenarse en registros privados para garantizar la seguridad y control sobre el software que se despliega.
Este artículo técnico y detallado le guiará a través de todo el proceso necesario para configurar el acceso a registros privados de imágenes Docker en un clúster Kubernetes gestionado, utilizando como referencia un entorno basado en Data Center Designer (DCD) de Arsys. Desde la creación del registro y los tokens de acceso, hasta la integración específica con Kubernetes mediante ImagePullSecrets, explicaremos paso a paso cómo asegurar que su clúster consuma imágenes privadas de forma segura, eficiente y profesional.
¿Qué es un registro privado de imágenes y por qué usarlo?
Un registro privado de imágenes es un repositorio dedicado a almacenar imágenes de contenedores Docker que no están disponibles públicamente. A diferencia de registros públicos como Docker Hub, estos repositorios requiere autenticación para acceder a sus contenidos.
Las principales ventajas de utilizar un registro privado son:
- Seguridad: Solo usuarios o sistemas autorizados pueden acceder a las imágenes.
- Control: Se puede limitar qué imágenes se almacenan y quién las puede descargar.
- Integración corporativa: Permite almacenar imágenes internas, propias, específicas para la organización.
- Reducción de dependencias externas: Almacenamiento y distribución controladas dentro de la infraestructura corporativa.
Relación con Kubernetes
Para que Kubernetes pueda desplegar pods con imágenes almacenadas en registros privados, debe estar configurado para autenticar y descargar esas imágenes. Esto evita errores como ImagePullBackOff
o 401 Unauthorized, frustrantes y comunes cuando esta configuración falla.
Acceso seguro a registros privados mediante tokens
En entornos como el Data Center Designer de Arsys, el acceso a registros privados se controla mediante tokens de autenticación temporales con permisos específicos. Cada token funciona como un conjunto de credenciales limitado en tiempo y en acciones permitidas (pull, push, delete).
Esto es vital para gestion de permisos, garantizando que Kubernetes solo tenga derecho a bajar imágenes (pull) y que otras aplicaciones o desarrolladores puedan tener permisos distintos según sus necesidades.
Ventajas del uso de tokens con alcance definido
- Seguridad mejorada: Limitar permisos minimiza riesgos de modificaciones no autorizadas.
- Caducidad automática: Control temporal sobre el acceso según políticas internas.
- Adaptabilidad por entorno: Diferentes tokens para desarrollo, producción, integración continua, etc.
Creación de un registro privado en Data Center Designer (DCD)
El proceso para crear un registro privado en el entorno de DCD es sencillo y accesible desde su portal de gestión:
- Acceda a
Management Resources > Container Registry Manager
. - Encuentre la sección de registros de imágenes y pulse Add para crear uno nuevo.
- Asigne un nombre descriptivo y seleccione la ubicación adecuada para el registro.
- Confirme la creación. Ahora el registro aparecerá en el listado con el nombre asignado.
No se requiere configuración adicional para la creación inicial.
Agregar tokens al registro privado
Una vez creado el registro, es imprescindible crear tokens de acceso para poder interactuar con él:
- En la interfaz del registro, pulse Add Token.
- Asigne un nombre al token (ejemplo:
admin
okubernetes-pull
). - Defina la fecha de caducidad del token, por ejemplo, diciembre de 2025.
- Configure el alcance o permisos del token, pudiendo seleccionar entre:
Pull
: Permite descargar imágenes.Push
: Permite subir imágenes.Delete
: Permite eliminar imágenes.*
(todas): Permisos administrativos completos.
Finalmente, cree el token y guarde las credenciales proporcionadas (usuario y contraseña), ya que no podrán recuperarse posteriormente.
Ejemplo práctico: Subir imágenes desde su máquina local al registro privado
Para operar con las imágenes locales y subirlas a su registro privado, siga estos pasos:

1. Identificar el servidor de login (Login Server)
Obtenga el DNS o URL del registro privado, provisto al crear el token. Este será usado para etiquetar y autenticar.
2. Etiquetar la imagen local con el login server
Docker asocia las imágenes con un repositorio especificando el servidor como prefijo en el nombre, por ejemplo:
docker tag mi-imagen localhost:5000/mi-imagen
El comando docker tag
crea una copia etiquetada para que Docker sepa a qué registro subir la imagen.
3. Autenticarse en el registro con Docker login
Ejecute el comando:
docker login login.server -u usuario_token -p contraseña_token
Reemplace los valores con las credenciales generadas. Si es exitoso, Docker queda autenticado.
4. Subir la imagen con docker push
Finalmente, ejecute:
docker push login.server/mi-imagen
El sistema subirá la imagen a su registro privado.
Visualización y gestión de imágenes desde Data Center Designer
Para verificar que la imagen fue subida correctamente:
- Acceda nuevamente a
Management Resources > Container Registry Manager
. - Seleccione el registro privado correspondiente.
- En la sección Repositories, verá las imágenes disponibles, incluyendo la recién subida.
Integración de Kubernetes con registros privados
Por defecto, Kubernetes no tiene acceso a registros privados, por lo que al intentar desplegar pods referenciando imágenes con autenticación requerida, verá errores en los estados de los pods, típicamente:
ImagePullBackOff
o errores 401 en eventos.
Uso de ImagePullSecrets para facilitar la autenticación
Kubernetes ofrece la funcionalidad denominada ImagePullSecrets, que permite asociar credenciales para el acceso a registros privados dentro de los manifiestos de recursos.
El procedimiento es:

- Crear un Secret de tipo
docker-registry
que incluya las credenciales del token. - Modificar el manifiesto del Pod, Deployment o ReplicaSet para agregar las credenciales en la sección
imagePullSecrets
.
Cómo crear un secreto docker-registry en Kubernetes
Usando la CLI kubectl
, cree un secreto con la siguiente estructura:
kubectl create secret docker-registry dcd --docker-server=login.server --docker-username=usuario_token --docker-password=contraseña_token [email protected]
dcd
: Nombre que tendrá el secreto.--docker-server
: Dirección del registro privado.--docker-username
y--docker-password
: Credenciales del token.--docker-email
: Opcional, correo del usuario.
Actualizar el manifiesto del Deployment para usar ImagePullSecrets
Edite el archivo YAML del deployment y agregue al nivel de spec.template.spec
:
imagePullSecrets: - name: dcd
Esto asegurará que Kubernetes utilice las credenciales almacenadas para autenticar y descargar la imagen del registro privado.
Validación y ejecución
Una vez aplicados los cambios:
- Ejecute
kubectl apply -f deployment.yaml
para actualizar el deployment. - Verifique el estado con
kubectl get pods
y eventos específicos para confirmar que las imágenes están siendo descargadas correctamente.
Buenas prácticas y recomendaciones
- Uso de tokens específicos: Configure tokens con permisos mínimos necesarios para Kubernetes, por ejemplo, solo
Pull
. - Gestión centralizada: Mantenga un repositorio organizado con imágenes versionadas para producción y desarrollo.
- Almacenamiento seguro de credenciales: Guarde las credenciales de acceso en gestores seguros y nunca las incluya sin cifrar en repositorios de código.
- Rotación periódica de tokens: Para mantener la seguridad, regenere tokens con fechas de expiración controladas.
- Monitorización: Supervise logs y eventos para detectar accesos indebidos o fallos en la descarga de imágenes.
Comparativa de métodos de autenticación en Kubernetes para registros privados
Método | Descripción | Ventajas | Desventajas |
---|---|---|---|
ImagePullSecrets con Docker Registry Secret | Uso de secretos Kubernetes con credenciales para autenticación. | Fácil de configurar, soportado nativamente, seguro al no exponer credenciales en manifiestos. | Requiere manejo manual de secretos y rotación de tokens. |
Autenticación mediante servicios externos (Ej. Vault, AWS ECR) | Integración con sistemas de gestión de secretos y tokens dinámicos. | Alta seguridad, automatización en rotación de credenciales. | Mayor complejidad inicial, dependencia de servicios adicionales. |
Configuración de DaemonSets o agentes para autenticación | Uso de agentes que gestionan credenciales localmente en nodos. | Permite integración avanzada y control granular. | Implementación más compleja, puede generar mayor mantenimiento. |
Palabras clave y conceptos fundamentales
Registro privado
Recurso para almacenar imágenes de contenedores bajo control de acceso. Es esencial para mantener la seguridad de las imágenes internas y evitar exposición pública.
Token de acceso
Credencial temporal que autoriza acciones específicas en el registro privado. Usar tokens con permisos mínimos es una buena práctica para fortalecer la seguridad y cumplir auditorias.
ImagePullSecrets
Mecanismo de Kubernetes para manejar credenciales de acceso a registros privados, garantizando que las imágenes puedan descargarse durante la creación de pods.
Deployment YAML
Archivo declarativo que configura el despliegue de aplicaciones en Kubernetes, donde se especifica la imagen, réplicas, y otras características como la autenticación para imágenes privadas.
Error ImagePullBackOff
Error común en Kubernetes cuando no puede descargar una imagen de contenedor, usualmente por falta de permisos o credenciales mal configuradas.
Kubectl
Herramienta de línea de comandos para interactuar con Kubernetes. Se utiliza para crear secretos, aplicar configuraciones y verificar estados de pods.
Docker tag y push
Comandos para etiquetar una imagen local y subirla a un registro remoto, respectivamente, pasos previos para cargar imágenes en registros privados.
Software-Defined Data Center (SDDC)
Concepto que extiende la virtualización a toda la infraestructura de centro de datos, facilitando la gestión programática y escalable de recursos como redes, almacenamiento y computación en la nube.

Para ampliar tus conocimientos y ver el proceso completo en acción, te invitamos a ver este video donde se detalla la configuración y uso práctico del registro privado en Kubernetes gestionado.
Preguntas frecuentes (FAQ)
¿Dónde se almacenan las imágenes en Kubernetes?
En Kubernetes, las imágenes suelen almacenarse en un registro de contenedores, que puede ser público, como Docker Hub, o privado, alojado dentro de la organización. Estas imágenes se referencian en los manifiestos de Kubernetes, como pods o configuraciones de Deployment, identificándolas de forma única mediante nombres que incluyen el servidor del registro y la ruta del repositorio.
¿Qué es un NodePort en Kubernetes?
Un servicio NodePort es una forma de exponer los pods al exterior. Internamente, funciona igual que un servicio ClusterIP, pero además abre un puerto específico en cada nodo del clúster para que las peticiones externas puedan acceder a los servicios Kubernetes a través de estos puertos expuestos.
¿Kubernetes tiene un registro de contenedores propio?
Kubernetes no dispone de un registro de contenedores incorporado. La plataforma se basa en registros externos —públicos o privados— para obtener las imágenes que despliega en los pods. Es responsabilidad del usuario configurar y proveer acceso a estos registros, ya sean terceros o privados gestionados dentro de la infraestructura propia.
¿Cómo evitar el error ImagePullBackOff al usar registros privados?
Este error ocurre cuando Kubernetes no puede autenticar o acceder a la imagen del registro privado. La solución es crear un secreto de tipo docker-registry con las credenciales correctas y agregarlo en el manifiesto del deployment en la sección imagePullSecrets
, asegurando así que los pods tengan permisos para descargar la imagen.
¿Es seguro almacenar credenciales de registro en secretos de Kubernetes?
Sí, aunque es importante controlar el acceso a los secretos y seguir buenas prácticas de gestión. Los secretos en Kubernetes están base64 codificados, no cifrados por defecto, por lo que se recomienda habilitar el cifrado en reposo y limitar el acceso solo a usuarios y pods autorizados.
¿Cada pod necesita su propio ImagePullSecret?
No es necesario que cada pod tenga su propio secreto. Un mismo ImagePullSecret puede ser referenciado por múltiples pods o deployments siempre que usen el mismo registro privado y credenciales.
¿Se pueden usar varios ImagePullSecrets en un mismo pod?
Sí, Kubernetes permite especificar una lista de ImagePullSecrets en el manifiesto para admitir credenciales de múltiples registros privados diferentes.
¿Cómo rotar las credenciales para los registros privados en Kubernetes?
Para rotar credenciales, se debe generar un nuevo token en el registro privado, crear un nuevo secreto en Kubernetes con las nuevas credenciales y actualizar los recursos que utilizan el secreto para referenciar el nuevo. Finalmente, se elimina el secreto antiguo para mantener la seguridad.
¿Puedo automatizar la gestión de tokens para Kubernetes?
Existen herramientas y servicios que permiten la automatización en la generación, distribución y rotación de tokens, integrándose con sistemas de CI/CD y gestores de secretos como HashiCorp Vault. Esto reduce errores y aumenta la seguridad operativa.
¿Qué permisos mínimos debe tener un token para Kubernetes?
Para un ambiente seguro, el token asignado a Kubernetes debe tener únicamente permiso de pull
para descargar imágenes. Esto evita que Kubernetes pueda subir o eliminar imágenes, minimizando riesgos accidentales o maliciosos en producción.
Conclusión
Configurar el acceso a registros privados de imágenes en Kubernetes gestionado es una tarea indispensable para mantener la seguridad, integridad y eficiencia en entornos productivos. Desde la creación correcta de registros y tokens en plataformas como Data Center Designer de Arsys, hasta la configuración precisa en Kubernetes mediante ImagePullSecrets, cada paso permite asegurar que las aplicaciones desplegadas se construyan sobre bases sólidas y controladas.

Si buscás implementar este tipo de soluciones en tu empresa, en Código6 podemos ayudarte. Somos especialistas en automatización, inteligencia artificial y transformación digital. Contactanos para comenzar tu proyecto hoy.
Leave A Comment