Nous allons déployer une application dans Azure à l’aide de charts Helm : https://docs.bitnami.com/kubernetes/get-started-aks/
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 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
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
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
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.
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.
https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/kubernetes_cluster
https://github.com/terraform-providers/terraform-provider-azurerm/tree/master/examples/kubernetes
https://registry.terraform.io/modules/Azure/appgw-ingress-k8s-cluster/azurerm/latest
https://docs.microsoft.com/fr-fr/azure/aks/ingress-basic#create-an-ingress-controller
Vidéo “K8s Networking in Azure” : https://www.youtube.com/watch?v=JyLtg_SJ1lo&list=PLoWxE_5hnZUZMWrEON3wxMBoIZvweGeiq&index=2
https://docs.microsoft.com/fr-fr/azure/aks/load-balancer-standard
https://docs.microsoft.com/fr-fr/azure/aks/http-application-routing
https://blog.crossplane.io/azure-secure-connectivity-for-aks-azure-db/
https://github.com/Azure/azure-service-operator