Concepts clés d’Azure Kubernetes Service (AKS)

Cet article décrit les concepts de base d’Azure Kubernetes Service (AKS), un service Kubernetes managé que vous pouvez utiliser pour déployer et exploiter des applications conteneurisées à grande échelle sur Azure.

Présentation de Kubernetes

Kubernetes est une plateforme d’orchestration de conteneurs open source permettant d’automatiser le déploiement, la mise à l’échelle et la gestion d’applications conteneurisées. Pour plus d’informations, consultez la documentation Kubernetes officielle.

Présentation d’AKS

AKS est un service Kubernetes managé qui simplifie le déploiement, la gestion et la mise à l’échelle d’applications conteneurisées avec Kubernetes. Pour plus d’informations, consultez Qu’est-ce qu’Azure Kubernetes Service ?

Composants de cluster

Un cluster AKS est divisé en deux principaux composants :

  • Plan de contrôle : Le plan de contrôle fournit les services Kubernetes de base et l’orchestration des charges de travail des applications.
  • Nœuds : Les nœuds sont les machines virtuelles sous-jacentes qui exécutent vos applications.

Capture d’écran du plan de contrôle Kubernetes et des composants de nœud

Plan de contrôle

Le plan de contrôle managé Azure comprend plusieurs composants qui permettent de gérer le cluster :

Composant Description
kube-apiserver Le serveur d’API (kube-apiserver) expose l’API Kubernetes pour pouvoir adresser des requêtes au cluster de l’intérieur et de l’extérieur du cluster.
etcd etcd est un magasin de clés-valeurs à haute disponibilité qui permet de maintenir l’état de votre cluster et de votre configuration Kubernetes.
kube-scheduler Le planificateur (kube-scheduler) permet de prendre des décisions de planification, de surveiller les nouveaux pods sans nœud affecté et de sélectionner un nœud pour qu’ils s’y exécutent.
kube-controller-manager Le gestionnaire de contrôleurs (kube-controller-manager) exécute des processus de contrôleur, comme détecter lorsque des nœuds tombent en panne et résoudre le problème.
cloud-controller-manager Le gestionnaire de contrôleurs cloud (cloud-controller-manager) incorpore la logique de contrôle spécifique au cloud pour exécuter des contrôleurs spécifiques au fournisseur de cloud.

Nœuds

Chaque cluster AKS a au moins un nœud, qui est une machine virtuelle exécutant les composants de nœud Kubernetes. Les composants suivants s’exécutent sur chaque nœud :

Composant Description
kubelet Le kubelet garantit que les conteneurs s’exécutent dans un pod.
kube-proxy Le kube-proxy est un proxy réseau qui gère les règles réseau sur les nœuds.
Runtime de conteneur Le runtime de conteneurs gère l’exécution et le cycle de vie des conteneurs.

Capture d’écran des ressources de machines virtuelles Azure et de prise en charge pour un nœud Kubernetes

Configuration de nœuds

Taille et image des machines virtuelles

La taille des machines virtuelles Azure pour vos nœuds définit les processeurs, la mémoire, la taille et le type de stockage disponible, comme un disque SSD haute performance ou un disque HDD classique. La taille de machine virtuelle que vous choisissez dépend des besoins de charge de travail et du nombre de pods que vous envisagez d’exécuter sur chaque nœud. Pour plus d’informations, consultez Tailles de machine virtuelles prises en charge dans Azure Kubernetes Service (AKS).

Dans AKS, l’image de machine virtuelle pour les nœuds de votre cluster est basée sur Ubuntu Linux, Azure Linux ou Windows Server 2022. Quand vous créez un cluster AKS ou augmentez le nombre de nœuds, la plateforme Azure crée et configure automatiquement le nombre demandé de machines virtuelles. Les nœuds agents étant facturés en tant que machines virtuelles standard, les remises dont vous bénéficiez sur la taille de machine virtuelle que vous utilisez, y compris les réservations Azure, sont automatiquement appliquées.

Disques du système d’exploitation

Le dimensionnement du disque de système d’exploitation par défaut est utilisé seulement sur les nouveaux clusters ou pools de nœuds quand les disques de système d’exploitation éphémères ne sont pas pris en charge et qu’aucune taille de disque de système d’exploitation par défaut n’est spécifiée. Pour plus d’informations, consultez Dimensionnement du disque de système d’exploitation par défaut et Disques de système d’exploitation éphémères.

Réservations de ressources

AKS utilise des ressources de nœud pour permettre aux nœuds de fonctionner dans le cadre du cluster. Cette utilisation peut entraîner un écart entre les ressources totales du nœud et les ressources allouables dans AKS. Pour maintenir les fonctionnalités et les performances des nœuds, AKS réserve deux types de ressources, processeur et mémoire, sur chaque nœud. Pour plus d’informations, consultez Réservations de ressources dans AKS.

Système d’exploitation

AKS prend en charge Ubuntu 22.04 et Azure Linux 2.0 comme système d’exploitation de nœud pour les pools de nœuds Linux. Pour les pools de nœuds Windows, AKS prend en charge Windows Server 2022 comme système d’exploitation par défaut. Windows Server 2019 est mis hors service après que la version 1.32 de Kubernetes ait atteint sa fin de vie et ne sera pas pris en charge dans les versions ultérieures. Si vous devez mettre à niveau votre version du système d’exploitation Windows, consultez Mise à niveau de Windows Server 2019 vers Windows Server 2022. Pour plus d’informations sur l’utilisation de Windows Server sur AKS, consultez Considérations relatives aux conteneurs Windows dans Azure Kubernetes Service (AKS).

Runtime de conteneur

Un runtime de conteneur est un logiciel qui exécute des conteneurs et gère des images conteneur sur un nœud. Le runtime permet d’abstraire les appels système ou les fonctionnalités spécifiques au système d’exploitation pour exécuter des conteneurs sur Linux ou Windows. Pour les pools de nœuds Linux, containerd est utilisé sur Kubernetes versions 1.19 et ultérieures. Pour les pools de nœuds Windows Server 2019 et 2022, containerd est généralement disponible et constitue la seule option de runtime dans Kubernetes versions 1.23 et ultérieures.

Pods

Un pod est un groupe d’un ou plusieurs conteneurs qui partagent les mêmes ressources de stockage et de réseau, et une spécification du mode d’exécution des conteneurs. Les pods ont généralement un mappage un-à-un avec un conteneur, mais vous pouvez exécuter plusieurs conteneurs dans un pod.

Pools des nœuds

Dans AKS, les nœuds d’une même configuration sont regroupés dans des pools de nœuds. Ces pools de nœuds contiennent les groupes de machines virtuelles identiques et les machines virtuelles sous-jacents qui exécutent vos applications. Lorsque vous créez un cluster AKS; vous définissez le nombre initial de nœuds et leur taille (référence SKU), opération qui crée un pool de nœuds système. Les pools de nœuds système ont pour principal objectif d’héberger des pods système critiques tels que CoreDNS et konnectivity. Pour prendre en charge les applications ayant des exigences de calcul ou de stockage différentes, vous pouvez créer des pools de nœuds utilisateur. Les pools de nœuds utilisateur sont principalement utilisés pour héberger vos pods d'application.

Pour plus d’informations, consultez Créer des pools de nœuds dans AKS et Gérer les pools de nœuds dans AKS.

Groupe de ressources de nœud

Lorsque vous créez un cluster AKS dans un groupe de ressources Azure, le fournisseur de ressources AKS crée automatiquement un deuxième groupe de ressources appelé groupe de ressources de nœud. Ce groupe de ressources contient toutes les ressources d’infrastructure associées au cluster, notamment les machines virtuelles, les groupes de machines virtuelles identiques et le stockage.

Pour plus d’informations, consultez les ressources suivantes :

Espaces de noms

Les ressources Kubernetes, comme les pods et les déploiements, sont regroupées logiquement en espaces de noms pour diviser un cluster AKS, et pour créer, visualiser ou gérer l’accès à des ressources.

Les espaces de noms suivants sont créés par défaut dans un cluster AKS :

Espace de noms Description
default L’espace de noms par défaut vous permet de commencer à utiliser les ressources de cluster sans créer d’espace de noms.
kube-node-lease L’espace de noms kube-node-lease permet aux nœuds de communiquer leur disponibilité au plan de contrôle.
kube-public L’espace de noms kube-public n’est généralement pas utilisé, mais vous pouvez y recourir pour rendre les ressources visibles dans l’ensemble du cluster par tous les utilisateurs.
kube-system L’espace de noms kube-system est utilisé par Kubernetes pour gérer les ressources de cluster, telles que coredns, konnectivity-agent et metrics-server.

Capture d’écran des espaces de noms Kubernetes pour séparer logiquement les ressources et les applications

Modes de cluster

Dans AKS, vous pouvez créer un cluster avec le mode Automatique (préversion) ou Standard. Le mode Automatique AKS offre une expérience complètement managée en gérant la configuration des clusters, notamment les nœuds, la mise à l’échelle, la sécurité et autres paramètres préconfigurés. Le mode Standard AKS offre un plus grand contrôle sur la configuration des clusters, notamment la possibilité de gérer les pools de nœuds, la mise à l’échelle et autres paramètres.

Pour plus d’informations, consultez Comparaison des fonctionnalités AKS Automatique et Standard.

Niveaux tarifaires

AKS propose trois niveaux tarifaires pour la gestion des clusters : Gratuit, Standard et Premium. Le niveau tarifaire que vous choisissez détermine les fonctionnalités disponibles pour la gestion de votre cluster.

Pour plus d’informations, consultez Niveaux tarifaires pour la gestion des clusters AKS.

Versions Kubernetes prises en charge

Pour plus d’informations, consultez les Versions de Kubernetes prises en charge dans AKS.

Étapes suivantes

Pour plus d’informations sur les concepts clés d’AKS, consultez les ressources suivantes :