Lab 2 : création d'un cluster plus avancé via Azure CLI, connexion et utilisation basique de kubectl
L'objectif de ce Lab 2, c'est de déployer un cluster AKS en Az CLI avec une configuration de type de "NAT Gateway", c'est à dire, d'avoir le contrôle de l'IP publique sortantes des "Node Pool" (Remarque: Il n'est pas possible de le faire dans la console). L'objectif de ce Lab 2, c'est également de manipuler avec KUBECTL (Kubernetes command-line tool)
- Prérequis:
- Authentification
az login
(pas nécessaire avec Azure Cloud Shell) - Checkez votre abonnement:
az account list -o table
- Option: Pour se mettre dans son abonnement
az account set --subscription 'mon_abonnement'
- Checkez les providers: Microsoft.OperationsManagement & Microsoft.OperationalInsights
az provider show -n Microsoft.OperationsManagement -o table
az provider show -n Microsoft.OperationalInsights -o table
- Option: Pour enregistrer les providers
az provider register --namespace Microsoft.OperationsManagement
az provider register --namespace Microsoft.OperationalInsights
- Pour faire ce Lab, mettre ses propres paramètres dans les "double cote" (ex: "RG-AKS-CLI" -> "mon-resource-group")
- Vous pouvez lancer les commandes une par une ou faite un script
- Création d'un "resource group"
az group create \
--location "eastus2" \
--resource-group "RG-AKS-CLI"
- Création d'une "Public Ip"
az network public-ip create \
--resource-group "RG-AKS-CLI" \
--name natGatewaypIpAks \
--location "eastus2" \
--sku standard
- Création d'une "Azure nat Gateway"
az network nat gateway create \
--resource-group "RG-AKS-CLI" \
--name natGatewayAks \
--location "eastus2" \
--public-ip-addresses natGatewaypIpAks
- Création d'un "Virtual Network"
az network vnet create \
--resource-group "RG-AKS-CLI" \
--name AKSvnet \
--location "eastus2" \
--address-prefixes 172.16.0.0/20
- Création d'un "subnet avec le paramétrage de la nat Gateway"
SUBNET_ID=$(az network vnet subnet create \
--resource-group "RG-AKS-CLI" \
--vnet-name AKSvnet \
--name natclusterAKS \
--address-prefixes 172.16.0.0/22 \
--nat-gateway natGatewayAks \
--query id \
--output tsv)
- Création d'une "Managed Identity"
IDENTITY_ID=$(az identity create \
--resource-group "RG-AKS-CLI" \
--name idAks \
--location "eastus2" \
--query id \
--output tsv)
- Création du "cluster AKS"
az aks create \
--resource-group "RG-AKS-CLI" \
--name "AKS-CLI" \
--location "eastus2" \
--network-plugin azure \
--generate-ssh-keys \
--node-count 2 \
--enable-cluster-autoscaler \
--min-count 1 \
--max-count 3 \
--vnet-subnet-id $SUBNET_ID \
--outbound-type userAssignedNATGateway \
--enable-managed-identity \
--assign-identity $IDENTITY_ID \
--yes
- Test du Cluster AKS
- Connexion au cluster
az aks get-credentials --resource-group "RG-AKS-CLI" --name "AKS-CLI"
- Liste des nodes du cluster
kubectl get nodes
- Liste les dépoiements dans tous les namespaces
kubectl get deployments --all-namespaces=true
- Installation d'une application avec les fichiers Manifests
- Dans le répertoire ./Manifest il y a cinq fichiers:
Namespace.yml
(création du namespace)
Deployment-redis.yml
(déploiement d'une base Redis)
Service-redis.yml
(déploiement du service Redis)
Deployment-front.yml
(déploiement du Front)
Service-front.yml
(déploiement du service Front) - Création du Namespace
kubectl apply -f ./Namespace.yml
liste les Namespace
kubectl get namespace
- Déploiement du Redis (azure-vote-back)
kubectl apply -f ./Deployment-redis.yml --namespace=azure-vote
kubectl apply -f ./Service-redis.yml --namespace=azure-vote
Vérification:
kubectl get deployments --all-namespaces=true
kubectl get service --namespace=azure-vote
- Déploiement du Front (azure-vote-front)
kubectl apply -f ./Deployment-front.yml --namespace=azure-vote
kubectl apply -f ./Service-front.yml --namespace=azure-vote
Vérification:
kubectl get deployments --all-namespaces=true
kubectl get service --namespace=azure-vote --watch
Attendre la récupération de "l'EXTERNAL-IP" & crt+c
Aller avec votre navigateur sur "l'EXTERNAL-IP"
Voir les logs "d'azure-vote-front"kubectl logs -l app=azure-vote-front --namespace azure-vote
- Fin du Lab 2 az group delete --name "RG-AKS-CLI"