Dans cet article nous allons mettre en place AKS sur Azure en ligne de commande.
AKS en ligne de commande : https://docs.microsoft.com/fr-fr/azure/aks/kubernetes-walkthrough
Prérequis : avoir installer deux VMs sur azure (voir le tuto précédent)
En avant Guingamp :
az aks create --resource-group TutorialResources --name myAKSCluster --node-count 1 --enable-addons monitoring --generate-ssh-keys
Cette commande va créer AKS sur un cluster nommé myAKSCluster avec une seule node et du monitoring. Ca prends qq minutes...
La commande va normalement vous renvoyer du JSON avec toute la config installée :
Json
{
"aadProfile": null,
"addonProfiles": {
"omsagent": {
"config": {
"logAnalyticsWorkspaceResourceID": "/subscriptions/eaeaae83-9dcd-405b-8f02-4e58e0e30bbb/resourcegroups/defaultresourcegroup-eus/providers/microsoft.operationalinsights/workspaces/defaultworkspace-eaeaae83-9dcd-405b-8f02-4e58e0e30bbb-eus"
},
"enabled": true
}
},
"agentPoolProfiles": [
{
"availabilityZones": null,
"count": 1,
"enableAutoScaling": null,
"enableNodePublicIp": null,
"maxCount": null,
"maxPods": 110,
"minCount": null,
"name": "nodepool1",
"nodeTaints": null,
"orchestratorVersion": "1.14.8",
"osDiskSizeGb": 100,
"osType": "Linux",
"provisioningState": "Succeeded",
"scaleSetEvictionPolicy": null,
"scaleSetPriority": null,
"type": "VirtualMachineScaleSets",
"vmSize": "Standard_DS2_v2",
"vnetSubnetId": null
}
],
"apiServerAccessProfile": null,
"dnsPrefix": "myAKSClust-TutorialResource-eaeaae",
"enablePodSecurityPolicy": null,
"enableRbac": true,
"fqdn": "myaksclust-tutorialresource-eaeaae-955218b3.hcp.eastus.azmk8s.io",
"id": "/subscriptions/eaeaae83-9dcd-405b-8f02-4e58e0e30bbb/resourcegroups/TutorialResources/providers/Microsoft.ContainerService/managedClusters/myAKSCluster",
"identity": null,
"kubernetesVersion": "1.14.8",
"linuxProfile": {
"adminUsername": "azureuser",
"ssh": {
"publicKeys": [
{
"keyData": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCxi46MPyNjpH/kBnXxU5t4bPcWpeCrByvAH9p6uzM+IDda+NTrWHpEmUr1IVZS7CXku5lpl6v3WJjuK1E35DdB5s2ewB7VR6iYKHgruqduAeprMdUx34xeXxn7cc9/QC1b83Lw7k+oyYYYoIfYcy9q/beIlBco8Eidj6GxNRk74fHd3H5r99W0pqA4IfIFpksOb19iiO+pgiABgewmAQETldclajNjVuV6G3cVDdFILGUXjSA/Z1d1eWoqh00XbtyY7sl3LkLd6puHTm1Qt5UlcD4mZKpI2ggqWicHVLA2Eq2Fz7GE637CdYsqXXs5eDJUeBA8S+d2fas00zMB4Pyb"
}
]
}
},
"location": "eastus",
"maxAgentPools": 8,
"name": "myAKSCluster",
"networkProfile": {
"dnsServiceIp": "10.0.0.10",
"dockerBridgeCidr": "172.17.0.1/16",
"loadBalancerProfile": {
"effectiveOutboundIps": [
{
"id": "/subscriptions/eaeaae83-9dcd-405b-8f02-4e58e0e30bbb/resourceGroups/MC_TutorialResources_myAKSCluster_eastus/providers/Microsoft.Network/publicIPAddresses/449f34d6-68cb-49ad-aa08-825d6448e1d7",
"resourceGroup": "MC_TutorialResources_myAKSCluster_eastus"
}
],
"managedOutboundIps": {
"count": 1
},
"outboundIpPrefixes": null,
"outboundIps": null
},
"loadBalancerSku": "Standard",
"networkPlugin": "kubenet",
"networkPolicy": null,
"outboundType": "loadBalancer",
"podCidr": "10.244.0.0/16",
"serviceCidr": "10.0.0.0/16"
},
"nodeResourceGroup": "MC_TutorialResources_myAKSCluster_eastus",
"privateFqdn": null,
"provisioningState": "Succeeded",
"resourceGroup": "TutorialResources",
"servicePrincipalProfile": {
"clientId": "f00bf5fa-37b4-42e5-9f2f-33ff3f32c672",
"secret": null
},
"tags": null,
"type": "Microsoft.ContainerService/ManagedClusters",
"windowsProfile": null
}
AKS est maintenant installé dans le groupe de ressource "TutorialResources"
Lors de la création d’un cluster AKS, un deuxième groupe de ressources est automatiquement créé pour stocker les ressources AKS. Pour ma part il s'appelle DefaultResourceGroup-EUS. Dedans on y trouve ceci :
Le premier est un "espace de travail Log Analytics". Le second est une "solution". Pour le moment je ne sais pas trop a quoi correspond ce dernier.
Enfin, l'installation d'AKS a généré un troisieme groupe de ressources avec 5 éléments :
Dans l'ordre affiché nous avons
- un équilibreur de charge
- un groupe de sécurité réseau
- une adresse IP publique
- une table de routage
- un réseau virtuel.
Voilà, beaucoup d'élément on été automatiquement installé. C'est une configuration par défaut qu'il faudra bien sûr ajuster aux besoins.
Pour la suite on va avoir besoin de kubectl qui est le client de ligne de commande Kubernetes. Si vous avez DockerDesktop avec la case Kubernetes cochée, vous devriez déjà l'avoir. Sinon vous pouvez toujours l'obtenir avec cette commande : az aks install-cli
Pour se connecter à notre cluster aks via kubectl :
Pour voir les nodes : kubectl get nodes
On y est, Kubernetes est installé sur notre cluster et tourne avec une seule node.