TP 5 - Cloud Azure

Nous allons déployer une application dans Azure à l’aide de charts Helm : https://docs.bitnami.com/kubernetes/get-started-aks/

Créer un cluster AKS

Configurer l’environnement Azure

Tout d’abord, il faut se créer un compte Azure. Si c’est la première fois, du crédit gratuit est disponible : https://azure.microsoft.com/fr-fr/free/ Ensuite on peut utiliser le Cloud Shell Azure ou n’importe quel terminal.

# Install Azure CLI
curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash

# Login
az login --allow-no-subscriptions

# Créer le groupe de ressources
az group create --name aks-resource-group --location westeurope

Au préalable, installer kubectl (pas besoin dans le Cloud Shell) :

snap install kubectl --classic

Créer le cluster K8S

# Créer deux nœuds dans le cluster AKS
az aks create --name aks-cluster --resource-group aks-resource-group --node-count 2 --generate-ssh-keys

# Récupérer la config AKS
az aks get-credentials --name aks-cluster --resource-group aks-resource-group

Créer le registry pour les images Docker

Pour créer le registry, il faut choisir un nom unique, remplacez pommedeterrepoirekiwi par un autre nom.

# Créer le registry
az acr create --resource-group aks-resource-group  --name pommedeterrepoirekiwi --sku Basic
az acr login --name pommedeterrepoirekiwi

# Créer un compte sur le registry pour K8S
ACR_LOGIN_SERVER=$(az acr show --name pommedeterrepoirekiwi --query loginServer --output tsv)
ACR_REGISTRY_ID=$(az acr show --name pommedeterrepoirekiwi --query id --output tsv)
SP_PASSWD=$(az ad sp create-for-rbac --name k8s-read-registry --role Reader --scopes $ACR_REGISTRY_ID --query password --output tsv)
CLIENT_ID=$(az ad sp show --id http://k8s-read-registry --query appId --output tsv)
kubectl create secret docker-registry read-registry-account \
--docker-server $ACR_LOGIN_SERVER \
--docker-username $CLIENT_ID \
--docker-password $SP_PASSWD \
--docker-email cto@example.org

Pousser une image sur son registry Azure

Pour installer Docker : curl -sSL https://get.docker.com | sudo sh

# Récupérer puis pousser une image sur son registry Azure
docker pull docker.io/bitnami/wordpress:latest
docker tag docker.io/bitnami/wordpress:latest pommedeterrepoirekiwi.azurecr.io/bitnami/wordpress:latest
docker push pommedeterrepoirekiwi.azurecr.io/bitnami/wordpress:latest

Appliquer une chart Helm

Pour installer Helm : curl https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 | bash

# Ajout de la chart
helm repo add bitnami https://charts.bitnami.com/bitnami

# Installer la chart
helm install wordpress bitnami/wordpress \
--set serviceType=LoadBalancer \
--set image.registry="pommedeterrepoirekiwi.azurecr.io" \
--set image.pullSecrets={read-registry-account} \
--set image.repository=bitnami/wordpress \
--set image.tag=latest

Des messages s’affichent suite à l’application de la chart Helm, suivez les instructions pour accéder au Wordpress.

Documentation

Scaling d’application dans Azure

Stockage dans Azure

Registry dans Azure

Terraform avec Azure

Terraform est un outil permettant de décrire des ressources cloud dans un fichier pour utiliser le concept d’infrastructure-as-code avec tous les objets des fournisseurs de Cloud.

Le réseau dans Azure

Pour aller plus loin

Les CRD : utiliser des objets Kubernetes pour définir des ressources Azure

https://github.com/Azure/azure-service-operator

Autres idées d’exercices