Kubernetes cómo extraer una imagen de un registro privado

Kubernetes cómo extraer una imagen de un registro privado

Los registros son de dos tipos: privado y público. Se puede acceder a los registros públicos sin ninguna credencial de inicio de sesión. Sin embargo, para acceder a un registro privado, debe proporcionar credenciales para iniciar sesión. El entorno de contenedores de Kubernetes funciona con imágenes de contenedores y estas imágenes se guardan en registro público o privado. Las imágenes ubicadas en un repositorio público están disponibles para todos sin ninguna protección. Sin embargo, si necesita acceder a una imagen ubicada en un registro privado, debe tener credenciales de inicio de sesión para acceder a un registro privado. Esta guía le enseñará en detalle todos los pasos sobre cómo extraer una imagen de un registro privado.

Prerrequisitos:

El entorno Kubernetes requiere herramientas básicas para permitirle trabajar en él. Entonces, asegúrese de que su sistema ya tenga las siguientes herramientas instaladas y, si no lo están, hágalo antes de avanzar en este documento:

  • Ubuntu 20.04 o cualquier otra última versión
  • Herramienta de línea de comandos kubectl
  • Clúster de minikube
  • Mínimo dos nodos genéricos sin actuar como hosts de plano de control
  • Herramienta de línea de comandos de Docker o cualquier otro registro de contenedores
  • ID de Docker o cualquier otro registro de contenedores con credenciales de inicio de sesión

Suponiendo que haya preparado su sistema instalando todos los requisitos previos, comencemos con el proceso de extraer una imagen de un registro privado.

Estamos utilizando un contenedor Docker en esta guía, por lo que esto está diseñado específicamente para que aprenda cómo puede extraer una imagen del registro privado de un Docker.

Entonces, comencemos esta guía paso a paso que puede seguir y aprender a extraer la imagen de un registro privado fácilmente.

Paso # 1: Comience el clúster de Minikube

Como estamos utilizando el clúster de minikube, debemos asegurarnos de que esté en modo activo. El clúster de Minikube puede comenzar usando el siguiente comando:

kalsoom@kalsoom-virtualbox> Minikube Start

Este comando le permite iniciar el clúster de minikube donde puede comenzar a ejecutar sus comandos y aplicación. Cuando ejecute este comando 'Inicio', obtendrá una salida similar a la que se da en la instantánea a continuación:

Paso # 2: Verifique el contenedor Docker

Dado que estamos utilizando el contenedor de Docker e intentamos acceder a una imagen ubicada en un registro de Docker privado, necesitamos iniciar sesión en él. Necesitamos proporcionar el nombre de inicio de sesión y la contraseña para que el registro privado tenga acceso completo al registro. Ahora, ingrese el siguiente comando en su herramienta de línea de comando e inicie sesión en el concentrador Docker:

kalsoom@kalsoom-virtualbox> Docker inicio de sesión

Como se muestra en la captura de pantalla anterior, la herramienta de línea de comandos solicita un nombre de usuario y una contraseña para iniciar sesión en el centro de Docker con Docker ID. Aquí, puede proporcionar las credenciales de su ID de Docker y tener acceso al registro privado de la identificación asociada.

Paso # 3: Acceda al archivo JSON

Cuando inicia sesión en el Docker Hub con la ID de Docker, la 'configuración.El archivo de JSON se actualiza con el token de autorización. Esto sucede en respuesta al proceso de inicio de sesión y el token de autorización le permite crear la clave secreta para acceder al registro privado de Docker. Ingrese el siguiente comando en su herramienta de línea de comando para obtener el token de autorización de la configuración.Archivo JSON:

kalsoom@kalsoom-virtualbox> Cat ~/.Docker/config.json

Consulte la salida dada en la captura de pantalla a continuación:

Paso # 4: Crea una clave secreta

Una clave secreta es importante para garantizar un acceso completamente seguro al registro privado del Docker. Por lo tanto, utilizaremos la clave de autorización para crear la clave secreta en las credenciales existentes. Esto nos permitirá extraer la imagen de un registro privado de Docker ya que Docker usa el secreto de los Kubernetes.IO/DockerCongigjson. Ahora, ejecute el siguiente comando en su terminal y obtenga el secreto en las credenciales existentes:

kalsoom@kalsoom-virtualbox> Kubectl Crear secreto genérico Regcred \

Simplemente copie y pegue las credenciales con el comando en la terminal y obtenga el secreto para su registro privado. Consulte la salida que se proporciona a continuación:

El comando anterior le permite crear el secreto a partir de la credencial existente si desea crear un secreto proporcionando la credencial en tiempo de ejecución. Además, puede hacerlo ejecutando el comando que se adjunta a continuación:

> Kubectl Crear secreto Docker-Registry Regcred -Docker-Server = --Docker-username = --Docker-password = --Docker-Email =

Aquí, el parámetro '-docker-server =' toma el nombre de su servidor, el parámetro '-docker-username =' toma su nombre de usuario, el parámetro '-docker-password =' ​​toma la contraseña y el '-docker- correo electrónico = 'El parámetro toma su dirección de correo electrónico. Consulte los datos de muestra dados en la captura de pantalla a continuación:

Esto ha creado un secreto llamado 'Regcred' utilizando la credencial que proporcionó en la línea de comandos.

Paso # 5: Inspección del secreto

Ahora que hemos creado el secreto para extraer la imagen del registro privado, debemos inspeccionarla para verificar lo que contiene. Esto nos permitirá comprender el contenido de 'Regcred Secret. Ejecute el siguiente comando en su terminal y vea el secreto registrado:

> Kubectl Get Secret Regcred -output = Yaml

Dado que el secreto registrado se almacena en el archivo YAML, utilizando este comando, estamos tratando de abrir el archivo YAML que contiene el secreto. Vea la salida que se da a continuación:

Los datos están representados en el formato Base64 y las credenciales están encriptadas con la técnica de cifrado Base64. Para comprender el contenido del secreto registrado, necesitamos tener el contenido en un formato legible. Por lo tanto, descifraremos el secreto en un formato legible utilizando el siguiente comando:

> Kubectl Get Secret Regcred -output = JSONPATH = .datos.\.DockerConfigjson "| Base64 --decode

Consulte la salida que se da a continuación y vea el secreto en un formato legible:

Paso # 6: Crea el archivo de configuración

Ahora estamos listos para extraer la imagen del registro privado. Entonces, estamos creando una vaina que usará el secreto que hemos creado anteriormente para acceder a la imagen. La definición de configuración del POD se mantiene en un archivo YAML. Cree un archivo YAML usando el comando a continuación:

> nano privado.yaml

Este comando ha creado un archivo YAML donde puede almacenar la definición de configuración para crear el POD. Vea la misma definición dada en la captura de pantalla a continuación:

Paso # 7: Descargue el archivo de configuración

Ahora, descargue el archivo de configuración en su sistema y guárdelo usando el siguiente comando:

> curl -l -o my-private-reg-pod.yaml https: // k8s.io/ejemplos/pods/private-reg-pod.yaml

Paso # 8: Crea el POD desde el archivo de configuración

Ahora, nuestro archivo de configuración está listo para crear la cápsula que usará el secreto. El siguiente comando construirá el Pod:

> kubectl aplicar -f privado.yaml

La cápsula ha sido creada con éxito. Entonces, verifiquemos que se ejecute correctamente usando el siguiente comando:

> Kubectl Get Pod Private-Reg

Conclusión

Aprendimos sobre los registros públicos y privados del Docker Hub y cómo acceder al repositorio privado de Docker utilizando la credencial. Con la ayuda de un escenario simple, aprendimos cómo acceder al Docker Hub utilizando la credencial existente y proporcionando credenciales en el tiempo de ejecución. Y finalmente, aprendimos a extraer una imagen de un registro privado del Docker Hub.