Didacticiel : Déployer un cluster Azure Kubernetes Service (AKS)Tutorial: Deploy an Azure Kubernetes Service (AKS) cluster

Kubernetes fournit une plateforme distribuée destinée aux applications en conteneur.Kubernetes provides a distributed platform for containerized applications. Avec AKS, vous pouvez créer rapidement un cluster Kubernetes prêt pour la production.With AKS, you can quickly create a production ready Kubernetes cluster. Dans ce tutoriel (troisième d’une série de sept), un cluster Kubernetes est déployé dans AKS.In this tutorial, part three of seven, a Kubernetes cluster is deployed in AKS. Vous allez apprendre à effectuer les actions suivantes :You learn how to:

  • Créer un principal du service pour les interactions de la ressourceCreate a service principal for resource interactions
  • Déployer un cluster Kubernetes AKSDeploy a Kubernetes AKS cluster
  • Installer l’interface de ligne de commande Kubernetes (kubectl)Install the Kubernetes CLI (kubectl)
  • Configurer kubectl pour se connecter à votre cluster AKSConfigure kubectl to connect to your AKS cluster

Dans d’autres tutoriels, l’application Azure Vote est déployée sur le cluster, mise à l’échelle et mise à jour.In additional tutorials, the Azure Vote application is deployed to the cluster, scaled, and updated.

Avant de commencerBefore you begin

Dans les tutoriels précédents, une image conteneur a été créée et chargée dans une instance Azure Container Registry.In previous tutorials, a container image was created and uploaded to an Azure Container Registry instance. Si vous n’avez pas effectué ces étapes et que vous souhaitez suivre cette procédure, commencez par le Tutoriel 1 : Créer des images conteneur.If you haven't done these steps, and would like to follow along, start at Tutorial 1 – Create container images.

Ce didacticiel nécessite l’exécution de l’interface de ligne de commande Azure CLI version 2.0.53 ou ultérieure.This tutorial requires that you're running the Azure CLI version 2.0.53 or later. Exécutez az --version pour trouver la version.Run az --version to find the version. Si vous devez installer ou mettre à niveau, voir Installer Azure CLI.If you need to install or upgrade, see Install Azure CLI.

Créer un principal du serviceCreate a service principal

Pour permettre à un cluster AKS d’interagir avec d’autres ressources Azure, un principal du service Azure Active Directory est utilisé.To allow an AKS cluster to interact with other Azure resources, an Azure Active Directory service principal is used. Ce principal du service peut être créé automatiquement par Azure CLI ou le portail, ou vous pouvez en précréer un et lui affecter des autorisations supplémentaires.This service principal can be automatically created by the Azure CLI or portal, or you can pre-create one and assign additional permissions. Dans ce tutoriel, vous créez un principal du service, vous accordez l’accès à l’instance Azure Container Registry (ACR) créé dans le tutoriel précédent, puis vous créez un cluster AKS.In this tutorial, you create a service principal, grant access to the Azure Container Registry (ACR) instance created in the previous tutorial, then create an AKS cluster.

Créez un principal du service à l’aide de la commande az ad sp create-for-rbac.Create a service principal using the az ad sp create-for-rbac command. Le paramètre --skip-assignment limite l’affectation d’autorisations supplémentaires.The --skip-assignment parameter limits any additional permissions from being assigned. Par défaut, ce principal de service est valide pendant un an.By default, this service principal is valid for one year.

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

Le résultat ressemble à l’exemple suivant :The output is similar to the following example:

{
  "appId": "e7596ae3-6864-4cb8-94fc-20164b1588a9",
  "displayName": "azure-cli-2018-06-29-19-14-37",
  "name": "http://azure-cli-2018-06-29-19-14-37",
  "password": "52c95f25-bd1e-4314-bd31-d8112b293521",
  "tenant": "72f988bf-86f1-41af-91ab-2d7cd011db48"
}

Prenez note des valeurs de appId et de password.Make a note of the appId and password. Ces valeurs sont utilisées dans les étapes suivantes.These values are used in the following steps.

Configurer une authentification ACRConfigure ACR authentication

Pour accéder à des images stockées dans ACR, vous devez accorder au principal du service AKS les droits appropriés pour extraire des images d’ACR.To access images stored in ACR, you must grant the AKS service principal the correct rights to pull images from ACR.

Pour commencer, obtenez l’ID de ressource ACR à l’aide de az acr show.First, get the ACR resource ID using az acr show. Mettez à jour le nom de Registre <acrName> avec celui de votre instance ACR et le groupe de ressources où se trouve cette instance.Update the <acrName> registry name to that of your ACR instance and the resource group where the ACR instance is located.

az acr show --resource-group myResourceGroup --name <acrName> --query "id" --output tsv

Pour accorder l’accès qui permettra au cluster AKS de tirer (pull) des images stockées dans ACR, attribuez le rôle AcrPull à l’aide de la commande az role assignment create.To grant the correct access for the AKS cluster to pull images stored in ACR, assign the AcrPull role using the az role assignment create command. Remplacez <appId> et <acrId> par les valeurs recueillies au cours des deux étapes précédentes.Replace <appId> and <acrId> with the values gathered in the previous two steps.

az role assignment create --assignee <appId> --scope <acrId> --role acrpull

Créer un cluster KubernetesCreate a Kubernetes cluster

Les clusters AKS peuvent utiliser les contrôles d’accès en fonction des rôles Kubernetes (RBAC).AKS clusters can use Kubernetes role-based access controls (RBAC). Ces contrôles vous permettent de définir l’accès aux ressources en fonction des rôles attribués aux utilisateurs.These controls let you define access to resources based on roles assigned to users. Des autorisations sont combinées si plusieurs rôles sont attribués à un utilisateur, et les autorisations peuvent être limitées à un seul espace de noms ou accordées à l’ensemble du cluster.Permissions are combined if a user is assigned multiple roles, and permissions can be scoped to either a single namespace or across the whole cluster. Par défaut, l’interface de ligne de commande Azure active automatiquement RBAC lorsque vous créez un cluster AKS.By default, the Azure CLI automatically enables RBAC when you create an AKS cluster.

Créez un cluster AKS à l’aide de az aks create.Create an AKS cluster using az aks create. L’exemple suivant crée un cluster nommé myAKSCluster dans le groupe de ressources nommé myResourceGroup.The following example creates a cluster named myAKSCluster in the resource group named myResourceGroup. Vous avez créé ce groupe de ressources dans le tutoriel précédent.This resource group was created in the previous tutorial. Spécifiez vos propres valeurs pour <appId> et <password>, qui proviennent de l’étape précédente le principal du service a été créé.Provide your own <appId> and <password> from the previous step where the service principal was created.

az aks create \
    --resource-group myResourceGroup \
    --name myAKSCluster \
    --node-count 2 \
    --service-principal <appId> \
    --client-secret <password> \
    --generate-ssh-keys

Après quelques minutes, le déploiement se termine et retourne des informations au format JSON concernant le déploiement AKS.After a few minutes, the deployment completes, and returns JSON-formatted information about the AKS deployment.

Notes

Pour garantir un fonctionnement fiable de votre cluster, vous devez exécuter au moins 2 (deux) nœuds.To ensure your cluster to operate reliably, you should run at least 2 (two) nodes.

Installer l’interface de ligne de commande KubernetesInstall the Kubernetes CLI

Pour vous connecter au cluster Kubernetes à partir de votre ordinateur local, utilisez kubectl, le client de ligne de commande Kubernetes.To connect to the Kubernetes cluster from your local computer, you use kubectl, the Kubernetes command-line client.

Si vous utilisez Azure Cloud Shell, kubectl est déjà installé.If you use the Azure Cloud Shell, kubectl is already installed. Vous pouvez également l’installer en local à l’aide de la commande az aks install-cli :You can also install it locally using the az aks install-cli command:

az aks install-cli

Se connecter au cluster à l’aide de kubectlConnect to cluster using kubectl

Pour configurer kubectl afin de vous connecter à votre cluster Kubernetes, exécutez la commande az aks get-credentials.To configure kubectl to connect to your Kubernetes cluster, use the az aks get-credentials command. L’exemple suivant obtient les informations d’identification du cluster AKS nommé myAKSCluster dans le groupe de ressources myResourceGroup :The following example gets credentials for the AKS cluster named myAKSCluster in the myResourceGroup:

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

Pour vérifier la connexion à votre cluster, exécutez la commande kubectl get nodes :To verify the connection to your cluster, run the kubectl get nodes command:

$ kubectl get nodes

NAME                       STATUS   ROLES   AGE   VERSION
aks-nodepool1-12345678-0   Ready    agent   32m   v1.13.10

Étapes suivantesNext steps

Dans ce tutoriel, un cluster Kubernetes a été déployé dans ACS, et vous avez configuré kubectl pour qu’il s’y connecte.In this tutorial, a Kubernetes cluster was deployed in AKS, and you configured kubectl to connect to it. Vous avez appris à effectuer les actions suivantes :You learned how to:

  • Créer un principal du service pour les interactions de la ressourceCreate a service principal for resource interactions
  • Déployer un cluster Kubernetes AKSDeploy a Kubernetes AKS cluster
  • Installer l’interface de ligne de commande Kubernetes (kubectl)Install the Kubernetes CLI (kubectl)
  • Configurer kubectl pour se connecter à votre cluster AKSConfigure kubectl to connect to your AKS cluster

Passez au didacticiel suivant pour savoir comment déployer une application dans le cluster.Advance to the next tutorial to learn how to deploy an application to the cluster.