Crear un Registry Local en Huawei Cloud CCE CI/CD

Requisitos : Maquina dentro del mismo tenant con docker instalado

Instalar Docker

Debian/Ubuntu  #apt-get install -y docker-engine
Centos/Rhel  #yum install -y docker-engine 

Habilitar docker desde el inicio

Systemctl #systemctl enable docker
Service #service docker on

Este material es parte de una colección de entregas que se realizaran para poder gestionar y orquestar contenedores en Huawei Cloud

CCE : en un servicio de contenedores escalable y de alto rendimiento, ejecuta contenedores para alojar aplicaciones y gestionar ciclos de vida de contenedores orquestando todo con una capa de Kubernetes, uno de los sistemas mas maduros para contenedores docker.

Una forma de proporcionar estos contenedores y capacidades de orquestación al cliente es a través de una llamada de «Servicios» Contenedor como servicio (CaaS).

Registry de docker (Adocker) : Un registro almacena las imágenes de docker. Docker hub es un registro público de contenedores que cualquiera puede usar.

En esta Guía crearemos un registry Local para consumir de forma mas eficiente los contenedores y poder crear imágenes personalizadas privadas, no exponiendo los registros de la empresa en un registry publico.

—- GUIA —-

1.- Entrar en la sección Cloud Container Engine (CCE) de Huawei Cloud (OTC)

Al ingresar a Cloud Container Engine, nos solicitara cargar el fichero de certificado, el cual encontramos en el apartado del usuario.

En la parte superior al costado derecho, encontraras la seccion de usuario

  • ingresar a credencial
  • claves de acceso y clickear en «Añadir clave de acceso», automáticamente te descargara al equipo un archivo de credenciales el cual se debe cargar en el registro de CCE. El contenido del archivo esta compuesto por el User Name, Acces Key Id, Secret Access Key. Este archivo se debe cargar tal cual en el registry de CCE.
  • Entrar nuevamente en CCE y clickear en panel de control/Cargar Fichero de Certificado

2.- Bajar el archivo de certificado local, este archivo se baja automáticamente a tu computador con el nombre dockercfg.txt y contiene los datos de conexión al registry local ejemplo:

3.- Revisión de la instalación de docker

#docker --version

4.- Crear directorio el cual contendrá las imágenes que serán importadas a nuestro registry local/privado

#mkdir -p ~/.docker
#cd ~/.docker

5.- Creación del archivo de configuración

  • copiamos el contendido del archivo dockercfg.txt , descargado en el punto 2
  • creamos y pegamos el contenido en el archivo config.json
vim config.json

{"auths":{"200.29.32.137:443":{"auth":"X2F1dGhfdG9rZW46MGZhMGI2NjVkMGU0NGZjZjhmOTdlYjI3N2FhMWI0YTMtR0ZBU01YVkRXVkM0S0FZTlpCOUstMjAyMDA5MTUxOT5YjRiNWUxNzVmMGNjMWVhYjU2NjNjYWMwNjYyNjViOTZkZjU4MmExNTMzYjg3OGY0ZGNhNmM5NWMxZGRiYw==","email":""}}}

6.- Editamos el archivo /usr/lib/systemd/system/docker.service, ubicamos la linea ExecStart= y agregar al final de la línea –insecure-registry 200.29.32.137:443

7.- Autenticar nuestra maquina contra el registro interno, se debe ejecutar echo -n y el codigo que nos entrego el archivo dockercfg.txt en el punto 2 | base64 d, al ejecutar este comando nos entregara el token de autenticacion que usaremos para loguearnos al registry interno.

#echo -n X2F1dGhfdG9rZW46MGZhMGI2NjVkMGU0NGZjZN2FhMWI0YTMtR0ZBU01YVkRXVkM0S0FZTlpCOUstMjAyMDA5MTUxOTU0MDItMzM5YjRiNWUxNzVmMGNjMWVhYjU2NjNjYWMwNjYyNjViOTZkZjU4MmExNTMzYjg3OGY0ZGNhNmM5NWMxZGRiYw== | base64 -d
[root@lockelabscluster-node-1 ~]# echo -n X2F1dGhfdG9rZW46MGZhMGI2NjVkMGU0NGZjZjhmOTdlYjI3N2FhMWI0YTMtR0ZBU01YVkRXVkM0S0FZTlpCOUstMjAyMDA5MTUxOTU0MDItMzM5YjNzVmMGNjMWVhYjU2NjNjYWMwNjYyNjViOTZkZjU4MmExNTMzYjg3OGY0ZGNhNmM5NWMxZGRiYw== | base64 -d
_auth_token:0fa0b665d0e44fcf8f97eb277aa1b4a3-GFASMXVDWVC4KAYNZB9K-20200915195402-339b4b5e175f0cc1eab566366265b96df582a1533b878f4dca6c95c1ddbc[root@lockelabscluster-node-1 ~]#

8.- Loguearse contra el registry interno, para hacer este logueo ejecutaremos docker login -u _auth_token y el token que entrego la ejecucion del comando anterior 200.29.32.137:443, que es la dirección de nuestro registry

#docker login -u _auth_token -p 0fa0b665d0e44fcf8f97eb277aa1b4a3-GFASMXVDWVC4KAYNZB9K-20200915195402-339b4b5e175f0cc1eab566366265b96df582a1533b878f4dca6c95c1ddbc 200.29.32.137:443

9.- Con estos pasos ya tenemos registrado nuestro repositorio local de contenedores y podremos empezar a descargar y consumir desde el registry Privado/Local.

En este ejemplo bajara un contenedor con a ultima version de NGINX

  • Ingresar a la carpeta .docker
#cd ~/.docker
  • Bajar el contenedor en este caso NGINX
#docker pull nginx

10.- Subida del contenedor al registry local

  • Listar Imagenes
#docker images
  • crear la etiqueta TAG
    • docker tag images_id 200.29.32.137:443/domain_name/image_name:version
#docker tag ab56bba91343 200.29.32.137:443/poc_preventa/nginx:latest
  • cargar la imagen al registry
#docker push 200.29.32.137:443/poc_preventa/nginx:latest

11.- El contenedor ya puede ser consumido de forma interna desde Huawei Cloud(OTC), directamente de nuestro registry local

Proceso Terminado!!! con esta guía podrán crear sus propios repositorios locales almacenados privadamente y alterar las imágenes publicas sin poner en riesgo información sensible en las configuraciones y sin exponer datos a INET.

NOTA : Los registros fueron alterados apropósito por temas de seguridad

Jorge Romero
Sigueme

Deja una Respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.