Workshop de 2 jours autour de d'Azure Kubernetes Services et services associés
tags: #workshop #aks #github #kubernetes
Découverte de Kubernetes dans Azure avec des exercices pratiques
- Introduction de l'atelier, programme des 2 journées
- Rappels rapides sur les architectures cloud natives, 12 factors apps, pet vs cattle, baking vs frying....
- Rappels rapides sur les basiques de Kubernetes
- Présentation AKS : control plane, worker nodes, réseau, stockage
- Lab 1 : création d'un cluster AKS via le portail Azure + visualisation des ressources via le portail Azure
- Lab 2 : création d'un cluster plus avancé via Azure CLI, connexion et utilisation basique de kubectl
- Lab 3 : création d'un cluster avec plusieurs node pools avec autoscaling via Terraform + déploiement basique d'une application (service de type load balancer)
- Intégration avec d'autres services Azure : Azure Monitor, Azure Policy, Azure Container Registry, Azure Log Anaytics, Azure Application Gateway, Azure NAT Gateway, Microsoft Defender for Cloud...
- Lab 4: Activation du monitoring avec Azure Monitor
- Lab 5 : Azure Container Registry : configuration, importation et utilisation avec AKS
- Lab 6 : Installation d'AGIC, déploiement d'Azure Application Gateway et déploiement d'une application basique
- Lab 7 : Utilisation du Secret Store CSI Driver avec Azure Key Vault
- Gestion des montées de version : du cluster à l'application
- Lab 8 : Montées de versions dans AKS
- Lab 9 : Montées de version de l'application => Rolling update, Blue Green, Canary
- Automatisation des déploiements applicatifs et configurations Kubernetes : Deployment Center, Pipelines avec GitHub, GitOps
- Lab 10 : Pipeline basique CI/CD Kubernetes YAML
- Introduction à Kustomize
- Lab 11 : Introduction à Kustomize et Pipeline avec Kustomize
- Lab 12 : GitOps avec AKS et Fluxv2
- Autoscaling quelles options ? HPA, KEDA, VPA, Virtual Kubelet...
- Conclusion - Tour de table
- Connaissances basiques de Kubernetes : à minima regarder les vidéos suivantes : https://www.youtube.com/watch?v=Srsabd1J-KU et https://www.youtube.com/watch?v=we7prqhRRHA
- Connaissances basiques d'Azure (RG, Azure CLI, RBAC, Service Principal)
- Connaissances basiques de git
- Connaissance basiques Bash
- Un Abonnement Azure avec des privilèges d'administrateur
- Un compte GitHub
Accéder au cloud shell via l'url suivante dans votre navigateur : https://shell.azure.com
Ouvrir un Azure Cloud Shell. Si c'est la première utilisation d'Azure Cloud Shell, valider la création d'un compte de stockage (qui contiendra les données du profil).
Informations complémentaires sur Azure Cloud Shell : https://docs.microsoft.com/en-us/azure/cloud-shell/overview
- Pour ceux sous Windows 10/11 : Installation WSL2 https://docs.microsoft.com/en-us/windows/wsl/install
- git -> https://git-scm.com/book/en/v2/Getting-Started-Installing-Git
- Azure CLI -> https://docs.microsoft.com/fr-fr/cli/azure/install-azure-cli-linux?pivots=apt (test: ~$ az Login)
- terraform -> https://learn.hashicorp.com/tutorials/terraform/install-cli (test : ~$ terraform)
Procédure d'installation de la CLI Terraform pour Linux (WSL Ubuntu 20.04)
sudo apt-get update && sudo apt-get install -y gnupg software-properties-common curl
curl -fsSL https://apt.releases.hashicorp.com/gpg | sudo apt-key add -
sudo apt-add-repository "deb [arch=amd64] https://apt.releases.hashicorp.com $(lsb_release -cs) main"
sudo apt-get update && sudo apt-get install terraform
- kubectl -> https://kubernetes.io/docs/tasks/tools/#kubectl (test: ~$ kubectl version)
- Visual Studio Code -> https://code.visualstudio.com
- Extension Terraform pour VSCode -> Depuis le bash, exécuter « code . » et aller chercher l’extension « Hashicorp Terraform »
- Extension WSL pour VSCode -> https://code.visualstudio.com/docs/remote/wsl-tutorial
- Extension YAML pour VSCode -> https://marketplace.visualstudio.com/items?itemName=redhat.vscode-yaml
se placer sur le répertoire home : cd
ssh-keygen -t rsa
az login
az account list -o table
Récupérer l'ID de la subscription Azure puis exécuter la commande suivante :
az ad sp create-for-rbac --name "votrenom-demo-githubaction2022" --role "Contributor" --scopes /subscriptions/METTRE_ICI_L_ID_DE_LA_SUBSCRIPTION -o jsonc
Récupérer le output de la commande et le sauvegarder temporairement dans un fichier