Présentation d’Azure Kubernetes Services (AKS) en vidéo

Suite au Meetup du 16 septembre sur AKS, organisé par le Microsoft User Group Tours voici la vidéo de cette présentation.

https://www.youtube.com/watch?v=tagtgLqGAlI&t=1s

Ci-dessous la liste des thèmes abordés durant ce talk ainsi que la documentation AKS et Kubernetes associée.

Azure Container Registry

registry - Présentation d'Azure Kubernetes Services (AKS) en vidéo

Créer une Azure container registry http://thomasrannou.azurewebsites.net/2019/05/28/azure-container-registry/

Un tutoriel pour :

Azure Kubernetes Services

image - Présentation d'Azure Kubernetes Services (AKS) en vidéo

Présentation

Introduction http://thomasrannou.azurewebsites.net/2019/07/10/introduction-a-azure-kubernetes-service/

Article de présentation de Kubernetes puis l’offre managée k8s dans Azure : Azure Kubernetes Services (AKS).

Les pools de noeuds : http://thomasrannou.azurewebsites.net/2020/01/28/les-pools-de-noeuds-dans-aks/

Présentation de l’organisation autour de pool de noeuds dans AKS. Tout l’intérêt des nodepools est la possibilité d’avoir des nœuds spécifiques pour exécuter nos pods afin de répondre à des besoins bien précis.

Haute disponibilité : http://thomasrannou.azurewebsites.net/2020/03/02/la-resilience-applicative-avec-aks/

Présentation de la tolérance aux pannes avec AKS. Quelle est la capacité du service à revenir dans un mode nominal de façon automatisée ?

Kubectl https://kubernetes.io/docs/reference/kubectl/

Déployer une application

2 1024x695 - Présentation d'Azure Kubernetes Services (AKS) en vidéo

Déploiement d’une application vers une registry puis AKS http://thomasrannou.azurewebsites.net/2019/08/03/deployer-dans-aks/

Un tutoriel pour déployer sa première application dans Azure Kubernetes Services depuis une Azure Container Registry.

Monitoring

monitor - Présentation d'Azure Kubernetes Services (AKS) en vidéo

Présentation d’Azure Monitor, Metrics et Logs Analytics http://thomasrannou.azurewebsites.net/2019/10/16/azure-monitor-pour-aks/

16 836x1024 - Présentation d'Azure Kubernetes Services (AKS) en vidéo

Présentation des outils pour monitorer notre cluster AKS et les applications qui y sont déployées.

Autoscaling

29 1024x245 - Présentation d'Azure Kubernetes Services (AKS) en vidéo

Sur les pods : http://thomasrannou.azurewebsites.net/2019/11/22/autoscaling-dans-aks/

Tutoriel pour mettre en oeuvre l’autoscaling sur les pods déployés. Il s’agit ici de présenter un scaling applicatif.

Sur les nodes : http://thomasrannou.azurewebsites.net/2020/01/06/autoscaler-aks/

Tutoriel pour configurer l’autoscaling sur les nodes de son cluster AKS. Ici on parle de scaling au niveau infrastructure.

azure - Présentation d'Azure Kubernetes Services (AKS) en vidéo

Le projet présenté

Et ci-dessous la liste de toute les commandes utilisées pendant les démos de ce meetup.

Prérequis

Un projet ASP .Net Core 3.0 et son Dockerfile :

https://docs.microsoft.com/en-us/aspnet/core/tutorials/first-mvc-app/start-mvc?view=aspnetcore-3.1&tabs=visual-studio

Build du projet

docker build -f "WebAppMeetupNantes/Dockerfile" . -t webappmeetup

Test en local

docker run -d -p 9000:80 --name myappmug webappmeetup

Azure Container Registry

Création du groupe de ressource

az group create --name demo --location eastus

https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-group-overview

Création de la container registry

az acr create --resource-group demo --name containeregistry --sku Basic

https://docs.microsoft.com/en-us/azure/container-registry/container-registry-intro

https://docs.microsoft.com/en-us/azure/container-registry/container-registry-skus

Connexion à la registry

az acr login --name containeregistry

Tag sur l’image docker

docker tag webappmeetup containeregistry.azurecr.io/webappk8s:v1

Push de l’image sur la registry

docker push containeregistry.azurecr.io/webappk8s:v1

Azure Kubernetes Services

Création d’un service principal

az ad sp create-for-rbac --skip-assignment

https://docs.microsoft.com/en-us/cli/azure/create-an-azure-service-principal-azure-cli

Obtenir l’identifiant de la registry

az acr show --resource-group demo --name containeregistry --query "id" --output tsv

Ajout du role Owner sur la registry

az role assignment create --assignee <appid> --scope <acrid> --role Owner

https://docs.microsoft.com/en-us/azure/role-based-access-control/role-assignments-cli

Création du cluster kubernetes

az aks create --resource-group demo --name myAKSCluster --node-count 3 --service-principal <appid> --client-secret <apppwd> --generate-ssh-keys --enable-addons monitoring

https://docs.microsoft.com/en-us/azure/aks/tutorial-kubernetes-deploy-cluster

Node pool et type de VM utilisé pour les nodes :

https://docs.microsoft.com/en-us/azure/aks/use-multiple-node-pools

Récupération du contexte en local

az aks get-credentials --resource-group demo --name myAKSCluster

Pods en execution

kubectl get pods --namespace=kube-system

Création du ClusterRoleBinding pour utiliser le dashboard

kubectl create clusterrolebinding kubernetes-dashboard --clusterrole=cluster-admin --serviceaccount=kube-system:kubernetes-dashboard

Ouverture du dashboard

az aks browse --resource-group demo --name myAKSCluster

https://docs.microsoft.com/en-us/azure/aks/kubernetes-dashboard

Introduction à Kubectl

https://kubernetes.io/docs/reference/kubectl/

https://kubernetes.io/fr/docs/reference/kubectl/cheatsheet/

Déploiement de mon app via un fichier YAML

kubectl apply -f .\deploytoaks.yaml

Déploiement du suivi des logs en live

kubectl apply -f .\metrics.yaml

Consommation de ressources

kubectl top nodes
kubectl top pod

Supression d’un pod de mon application

kubectl delete pod … Il est relancé automatiquement.

Horizontal Pod Autoscaler

https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/

Mise en place du HPA

kubectl autoscale deployment aspwebsite --max 10 --min 2 --cpu-percent 10

Visualisation

kubectl get hpa

Stress test via l’executable .cmd

Autoscale sur la mémoire

kubectl apply -f .\autoscale.yaml

Monitoring

https://docs.microsoft.com/en-us/azure/azure-monitor/overview

Insights https://docs.microsoft.com/en-us/azure/azure-monitor/app/app-insights-overview
Metrics https://docs.microsoft.com/en-us/azure/azure-monitor/platform/data-platform-metrics
Logs https://docs.microsoft.com/en-us/azure/azure-monitor/log-query/get-started-portal

Les fichiers yaml déployés et le programme batch pour le stress test :demo

Tests

Test en local : http://thomasrannou.azurewebsites.net/2019/08/14/tester-son-cluster-k8s-en-local/

Azure DevSpaces : http://thomasrannou.azurewebsites.net/2019/09/04/debugger-dans-son-cluster-kubernetes-dans-azure/

J’espère que cette vidéo de présentation d’AKS vous permettra de comprendre les avantages de ce formidable outil 🙂

Thomas

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *