AKS: Creación de Azure Container Registry para hospedar imágenes Docker (2/3)

1. Introducción

Este artículo (2/3) muestra como crear un Azure Container Registry para almacenar y gestionar imágenes de contenedores. Una vez creado el registro se muestra como subir y descargar imágenes haciendo uso de los comandos push y pull. Más en concreto, se proporciona el código con explicaciones sobre cómo subir las imágenes creadas en el artículo anterior (1/3). El registro de Azure Container Registry será utilizado posteriormente por Azure Kubernetes Service para extraer nuestras imágenes personalizadas de forma automática tal y como se explica en el artículo posterior (3/3) .

2. Consideraciones Generales

Se establecen las siguientes consideraciones generales a tener en cuenta:

  • La autenticación en Azure para crear recursos proporcionada en los ficheros de código hace uso de un service principal con el rol de contributor. Puedes usar otra cuenta de usuario para autenticarte siempre y cuando tenga el rol correspondiente. De lo contrario la creación de recursos te será denegada.

3. Creación de Azure Container Registry

A continuación se proporciona el código de Azure CLI para crear nuestro Azure Container Registry junto con las explicaciones de cada uno de los comandos utilizados:

# Establece valores de tenant y suscripción sobre los cuales se crea el Azure Container Registry.
# Debes introducir los valores asociados a TU tenant y suscripción.
$tenant_id      = "00000000-0000-0000-0000-000000000000"
$subscription_id = "00000000-0000-0000-0000-000000000000"
 
# Establece identificador y clave de cliente del service principal usado para autenticarnos en Azure y desplegar los recursos.
# Este service principal debe tener el rol de contributor.
# Debes elegir los valores asociados a TU service principal.
# Puedes elegir una cuenta de usuario en lugar de un service principal y obviar estas líneas
$client_id      = "00000000-0000-0000-0000-000000000000"
$client_secret = "XXXXXXXX"

# Autenticación en Azure vía service principal.
# Otra opción es autenticarse con otra cuenta de usuario vía az login por defecto.
az login --service-principal --username $client_id --password $client_secret --tenant $tenant_id

# Establece suscripción de trabajo.
az account set --subscription $subscription_id
 
# Establece nombre de grupo de recursos en el que se crea el Azure Container Registry.
# Modifica el valor por el tuyo propio.
$rg = "jm-inn-acr-aks-intro-rg"
 
# Ubicación del nuevo grupo de recursos.
# Modifica el valor por el tuyo propio.
$loc = "westeurope"

# Creación del grupo de recursos.
az group create -n $rg -l $loc

# Creación del Azure Container Registry en el grupo de recursos y ubicación definida anteriormente.
$acrName = "jminnacr"
az acr create --name $acrName --resource-group $rg --sku Basic

Podemos verificar la creación del registro ACR jminnacr en el grupo de recursos jm-inn-aks-intro-rg desde el portal de Azure:
 
 
Es importante destacar el formato del login server jminnacr.azurecr.io
 

4. Subida (push) y Descarga (pull) de imágenes en Azure Container Registry

En este capítulo se muestra el código utilizado para subir, descargar y listar imágenes de Azure Container Registry junto con explicaciones de cada uno de los comandos utilizados:

# Establece valores de tenant y suscripción sobre los cuales se crea el Azure Container Registry.
# Debes introducir los valores asociados a TU tenant y suscripción.
$tenant_id      = "00000000-0000-0000-0000-000000000000"
$subscription_id = "00000000-0000-0000-0000-000000000000"
 
# Establece identificador y clave de cliente del service principal usado para autenticarnos en Azure y desplegar los recursos.
# Este service principal debe tener el rol de contributor.
# Debes elegir los valores asociados a TU service principal.
# Puedes elegir una cuenta de usuario en lugar de un service principal para autenticarte y obviar estas líneas
$client_id      = "00000000-0000-0000-0000-000000000000"
$client_secret = "XXXXXXXX"

# Autenticación en Azure vía service principal.
# Otra opción es autenticarse con otra cuenta de usuario vía az login por defecto.
az login --service-principal --username $client_id --password $client_secret --tenant $tenant_id
 
# Accedemos a nuestro Azure Container Registry creado con anterioridad
# Sustituye el nombre del registro por el tuyo propio
$acrName = "jminnacr"
az acr login --name $acrName
 
# Etiqueta la imagen con la url del registro ACR como prefijo (acrName.azurecr.io) y añade la etiqueta como sufijo (v1).
# Es obligatorio para poder hacer push de imágenes al registro ACR.
docker tag jm-inn-azure-vote-front-image "$acrName.azurecr.io/jm-inn-azure-vote-front-image:v1"
 
# Copia o sube (push) la imagen desde nuestra máquina al Azure Container Registry
docker push "$acrName.azurecr.io/jm-inn-azure-vote-front-image:v1"
 
# Lista imágenes del Azure Container Registry
az acr repository list --name $acrName --output table
 
Podemos verificar la existencia de nuestra imagen en el registro ACR jminnacr en el repositorio jm-inn-azure-vote-front-image con tag v1:
 
 
También podemos consultar información adicional como:
 
  • Uso del repositorio:
 
  • Etiquetas existentes en el repositorio:
Pulsando en v1 accederías al detalle de la imagen correspondiente a dicha etiqueta.
 

Referencias

 

 

Add comment