Skip to content

Latest commit

 

History

History
135 lines (118 loc) · 4.62 KB

File metadata and controls

135 lines (118 loc) · 4.62 KB

Lab 2 : création d'un cluster plus avancé via Azure CLI, connexion et utilisation basique de kubectl

Objectif:

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)

  1. 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
  1. Création d'un "resource group"
az group create \
    --location "eastus2" \
    --resource-group "RG-AKS-CLI"
  1. Création d'une "Public Ip"
az network public-ip create \
    --resource-group "RG-AKS-CLI" \
    --name natGatewaypIpAks \
    --location "eastus2" \
    --sku standard  
  1. 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
  1. 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
  1. 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)
  1. Création d'une "Managed Identity"
IDENTITY_ID=$(az identity create \
    --resource-group "RG-AKS-CLI" \
    --name idAks \
    --location "eastus2" \
    --query id \
    --output tsv)
  1. 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

  1. 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
  1. 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
  1. Fin du Lab 2 az group delete --name "RG-AKS-CLI"