Démarrage rapide : Déployer un cluster hôte de conteneur Azure Linux pour AKS en utilisant l’interface Azure CLI

Pour commencer, vous allez déployer un cluster hôte de conteneur Azure Linux pour AKS en utilisant l’interface Azure CLI. Une fois les prérequis installés, vous devez créer un groupe de ressources et un cluster AKS, vous connecter au cluster, puis exécuter un exemple d’application multiconteneur dans le cluster.

Prérequis

Créer un groupe de ressources

Un groupe de ressources Azure est un groupe logique dans lequel des ressources Azure sont déployées et gérées. Lors de la création d’un groupe de ressources, vous devez spécifier un emplacement. Cet emplacement est :

  • L’emplacement de stockage des métadonnées de votre groupe de ressources.
  • Là où vos ressources s’exécutent dans Azure si vous ne spécifiez pas une autre région lors de la création d’une ressource.

Pour créer un groupe de ressources nommé testAzureLinuxResourceGroup dans la région eastus, procédez comme suit :

Créez un groupe de ressources avec la commande az group create.

az group create --name testAzureLinuxReourceGroup --location eastus

La sortie suivante indique que votre groupe de ressources a été correctement créé :

{
  "id": "/subscriptions/<guid>/resourceGroups/testAzureLinuxResourceGroup",
  "location": "eastus",
  "managedBy": null,
  "name": "testAzureLinuxResourceGroup",
  "properties": {
    "provisioningState": "Succeeded"
  },
  "tags": null
}

Notes

L’exemple ci-dessus utilise eastus, mais les clusters hôtes de conteneur Azure Linux sont disponibles dans toutes les régions.

Créer un cluster hôte de conteneur Azure Linux

Créez un cluster AKS en utilisant la commande az aks create avec le paramètre --os-sku pour provisionner le cluster AKS avec une image Azure Linux. L’exemple suivant crée un cluster Azure Linux nommé testAzureLinuxCluster avec un nœud :

az aks create --name testAzureLinuxCluster --resource-group testAzureLinuxResourceGroup --os-sku AzureLinux

Au bout de quelques minutes, la commande se termine et retourne des informations au format JSON sur le cluster.

Se connecter au cluster

Pour gérer un cluster Kubernetes, utilisez kubectl, le client de ligne de commande Kubernetes.

  1. Configurez kubectl afin de vous connecter à votre cluster Kubernetes avec la commande az aks get-credentials.
az aks get-credentials --resource-group testAzureLinuxResourceGroup --name testAzureLinuxCluster
  1. Pour vérifier la connexion à votre cluster, exécutez la commande kubectl get. Cette commande retourne la liste des pods.
  kubectl get pods --all-namespaces

Déployer l’application

Un fichier manifeste Kubernetes définit un état souhaité d’un cluster, notamment les images conteneur à exécuter.

Dans ce guide de démarrage rapide, un manifeste est utilisé afin de créer tous les objets nécessaires pour l’exécution de l’application Azure Vote. Ce manifeste comprend deux déploiements Kubernetes :

  • Exemples d’applications Python pour Azure Vote.
  • Une instance Redis.

Deux services Kubernetes sont également créés :

  • Un service interne pour l’instance Redis.
  • Un service externe pour accéder à l’application Azure vote à partir d’Internet.
  1. Créez un fichier nommé azure-vote.yaml et copiez-y le manifeste suivant.

    • Si vous utilisez Azure Cloud Shell, ce fichier peut être créé en utilisant code, vi ou nano comme si vous travailliez sur un système virtuel ou physique.
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: azure-vote-back
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: azure-vote-back
      template:
        metadata:
          labels:
            app: azure-vote-back
        spec:
          nodeSelector:
            "kubernetes.io/os": linux
          containers:
          - name: azure-vote-back
            image: mcr.microsoft.com/oss/bitnami/redis:6.0.8
            env:
            - name: ALLOW_EMPTY_PASSWORD
              value: "yes"
            resources:
              requests:
                cpu: 100m
                memory: 128Mi
              limits:
                cpu: 250m
                memory: 256Mi
            ports:
            - containerPort: 6379
              name: redis
    ---
    apiVersion: v1
    kind: Service
    metadata:
      name: azure-vote-back
    spec:
      ports:
      - port: 6379
      selector:
        app: azure-vote-back
    ---
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: azure-vote-front
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: azure-vote-front
      template:
        metadata:
          labels:
            app: azure-vote-front
        spec:
          nodeSelector:
            "kubernetes.io/os": linux
          containers:
          - name: azure-vote-front
            image: mcr.microsoft.com/azuredocs/azure-vote-front:v1
            resources:
              requests:
                cpu: 100m
                memory: 128Mi
              limits:
                cpu: 250m
                memory: 256Mi
            ports:
            - containerPort: 80
            env:
            - name: REDIS
              value: "azure-vote-back"
    ---
    apiVersion: v1
    kind: Service
    metadata:
      name: azure-vote-front
    spec:
      type: LoadBalancer
      ports:
      - port: 80
      selector:
        app: azure-vote-front
    

    Pour obtenir une répartition des fichiers manifeste YAML, consultez Déploiements et manifestes YAML.

  2. Déployez l’application à l’aide de la commande kubectl apply et spécifiez le nom de votre manifeste YAML :

    kubectl apply -f azure-vote.yaml
    

    L’exemple suivant ressemble à la sortie montrant les déploiements et services créés avec succès :

    deployment "azure-vote-back" created
    service "azure-vote-back" created
    deployment "azure-vote-front" created
    service "azure-vote-front" created
    

Test de l’application

Quand l’application s’exécute, un service Kubernetes expose le front-end de l’application sur Internet. L’exécution de ce processus peut prendre plusieurs minutes.

Surveillez la progression avec la commande kubectl get service et l’argument --watch.

kubectl get service azure-vote-front --watch

La sortie EXTERNAL-IP pour le service azure-vote-front affiche initialement En attente.

NAME               TYPE           CLUSTER-IP   EXTERNAL-IP   PORT(S)        AGE
azure-vote-front   LoadBalancer   10.0.37.27   <pending>     80:30572/TCP   6s

Quand l’adresse EXTERNAL-IP passe de l’état pending à une adresse IP publique réelle, utilisez CTRL-C pour arrêter le processus de surveillance kubectl. L’exemple de sortie suivant montre une adresse IP publique valide affectée au service :

azure-vote-front   LoadBalancer   10.0.37.27   52.179.23.131   80:30572/TCP   2m

Pour voir l’application Azure Vote en action, ouvrez un navigateur web en utilisant l’adresse IP externe de votre service.

Capture d’écran de la navigation vers l’exemple d’application Azure Vote.

Supprimer le cluster

Si vous n’envisagez pas de suivre les tutoriels suivants, nettoyez toutes les ressources inutiles pour éviter les frais Azure. Utilisez la commande az group delete pour supprimer le groupe de ressources et toutes les ressources associées.

az group delete --name testAzureLinuxCluster --yes --no-wait

Étapes suivantes

Dans ce guide de démarrage rapide, vous avez déployé un cluster hôte de conteneur Azure Linux. Pour en savoir plus sur l’hôte de conteneur Azure Linux et suivre pas à pas un exemple complet illustrant le déploiement et la gestion d’un cluster, passez au tutoriel sur l’hôte de conteneur Azure Linux.