Meetup sur AKS : slides et notes

Suite au Meetup du 05 décembre sur AKS, organisé par le MUG Nantes voici les slides et mes notes pour cette présentation :

azure - Meetup sur AKS : slides et notes

Télécharger (PDF, 504KB)

Et ci-dessous la liste de toute les commandes utilisées pendant les démos de ce meetup ainsi que la documentation AKS ou Kubernetes associée.

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

http://thomasrannou.azurewebsites.net/2019/05/28/azure-container-registry/

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

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

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?view=azure-cli-latest

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

http://thomasrannou.azurewebsites.net/2019/08/03/deployer-dans-aks/

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/

http://thomasrannou.azurewebsites.net/2019/11/22/lautoscaling-dans-aks/

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

http://thomasrannou.azurewebsites.net/2019/10/16/azure-monitor-pour-aks/

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 :

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/

Cluster Autoscale

https://docs.microsoft.com/en-us/azure/aks/cluster-autoscaler

Bonne lecture !

Thomas

Laisser un commentaire

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