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"

Sans titre2

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 :

Sans titre

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 :

Sans titre3

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 :

az aks get-credentials --resource-group TutorialResources --name myAKSCluster
 
réponse : Merged "myAKSCluster" as current context in C:\Users\Yann\.kube\config

 

Pour voir les nodes : kubectl get nodes

Sans titre4.png

On y est, Kubernetes est installé sur notre cluster et tourne avec une seule node. 

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée Champs requis marqués avec *

Poster commentaire