Ce scénario montre comment concevoir et implémenter une architecture de référence pour Microsoft Azure Kubernetes Service (AKS) qui s’exécute sur Azure Stack HCI.
Cet article présente des recommandations ayant trait au réseau, la sécurité, l’identité, la gestion et la supervision du cluster en fonction des besoins métier de l’organisation. Il fait partie d’un ensemble de deux articles destinés à servir de guides pour une base de référence de l’architecture. Consultez les recommandations relatives à la conception du réseau.
Important
Les informations de cet article s’appliquent à AKS sur Azure Stack HCI version 22H2 et AKS-HCI sur Windows Server. La version la plus récente d’AKS s’exécute sur Azure Stack HCI 23H2. Pour plus d’informations sur la dernière version, consultez la documentation AKS sur Azure Stack HCI version 23H2.
Architecture
L’image suivante montre l’architecture de référence pour Azure Kubernetes Service sur Azure Stack HCI ou des clusters de basculement Windows Server 2019/2022 Datacenter :
Téléchargez un fichier Visio de cette architecture.
L’architecture est constituée des fonctionnalités et composants suivants :
- Azure Stack HCI (22H2) . Solution de cluster d’infrastructure hyperconvergée (HCI) qui héberge des charges de travail Windows et Linux virtualisées, ainsi que leur stockage, dans un environnement local hybride. Le cluster Azure Stack HCI est implémenté sous la forme d’un cluster de 2 à 8 nœuds.
- Azure Kubernetes Service (AKS) sur Azure Stack HCI. Implémentation locale d’AKS qui automatise l’exécution d’applications conteneurisées à grande échelle.
- Azure Arc. Service cloud qui étend le modèle de gestion basé sur Azure Resource Manager aux ressources non Azure, notamment les machines virtuelles non Azure, les clusters Kubernetes et les bases de données conteneurisées.
- Azure Policy. Service cloud qui permet d’appliquer des standards organisationnels et d’évaluer la conformité à grande échelle des ressources Azure (y compris celles avec Arc) en comparant leurs propriétés aux règles métier. Ces standards incluent également Azure Policy pour Kubernetes, qui applique des stratégies aux charges de travail qui sont exécutées à l’intérieur du cluster.
- Azure Monitor. Service basé sur le cloud qui optimise la disponibilité et les performances de vos applications et services en fournissant une solution complète pour collecter, analyser et utiliser la télémétrie de vos environnements cloud et locaux.
- Microsoft Defender pour le cloud. Système de gestion de la sécurité de l’infrastructure unifié qui renforce la posture de sécurité de vos centres de données et fournit une protection avancée contre les menaces pour vos charges de travail hybrides, localement et dans le cloud.
- Azure Automation. Offre un service d’automatisation et de configuration cloud prenant en charge une gestion cohérente de vos environnements Azure et non Azure.
- Velero. Outil open source qui prend en charge la sauvegarde à la demande et la sauvegarde planifiée, et restaure tous les objets du cluster Kubernetes.
- Stockage Blob Azure. Stockage d’objets massivement évolutif et sécurisé pour les charges de travail, les archives, les lacs de données, l’informatique hautes performances et le Machine Learning natifs du cloud.
Composants
- Azure Stack HCI (22H2)
- Azure Kubernetes Service (AKS) sur Azure Stack HCI
- Windows Admin Center
- Un abonnement Azure
- Azure Arc
- Contrôle d’accès en fonction du rôle Azure (Azure RBAC)
- Azure Monitor
- Microsoft Defender pour le cloud
Détails du scénario
Cas d’usage potentiels
- Implémentez des charges de travail basées sur des conteneurs hautement disponibles dans une implémentation Kubernetes locale d’AKS.
- Automatisez l’exécution d’applications conteneurisées à grande échelle.
- Réduction du coût total de possession (TCO) par le biais de solutions certifiées Microsoft, de l’automatisation basée sur le cloud, de la gestion centralisée et de la surveillance centralisée.
Matériel certifié
Utilisez du matériel certifié Azure Stack HCI, qui fournit des paramètres prêts à l’emploi concernant le démarrage sécurisé, l’interface UEFI et le module de plateforme sécurisée (TPM). Les exigences de calcul dépendent de l’application et du nombre de nœuds Worker qui s’exécutent dans AKS sur le cluster. Pour obtenir une haute disponibilité, utilisez plusieurs nœuds physiques pour le déploiement d’Azure Stack HCI, ou au moins un cluster de basculement Windows Server Datacenter à deux nœuds. Il est nécessaire que tous les serveurs soient du même modèle et proviennent du même fabricant, qu’ils utilisent des processeurs compatibles Intel Nehalem, de classe AMD EPYC 64 bits ou ultérieur, avec la traduction d’adresses de deuxième niveau (SLAT).
Stratégies de déploiement de clusters
AKS simplifie le déploiement de Kubernetes local en fournissant des Assistants ou des applets de commande PowerShell que vous pouvez utiliser pour configurer Kubernetes et les modules complémentaires Azure Stack HCI essentiels. Un cluster AKS est constitué des composants suivants sur Azure Stack HCI :
- Cluster de gestion. Déployez le cluster de gestion sur une machine virtuelle hautement disponible qui s’exécute sur Azure Stack HCI ou sur un cluster de basculement Windows Server 2019/2022 Datacenter. Le cluster de gestion est responsable du déploiement et de la gestion de plusieurs clusters de charges de travail. Il comprend les composants suivants :
- Serveur API. Interagit avec les outils de gestion.
- Équilibreur de charge. Gère les règles d’équilibrage de charge pour le serveur d’API du cluster de gestion.
- Des clusters de charges de travail. Implémentent des composants de plan de contrôle hautement disponibles et des composants de nœud Worker. Les applications conteneurisées s’exécutent sur un cluster de charges de travail. Pour réaliser l’isolation des applications, vous pouvez déployer jusqu’à huit clusters de charges de travail. Le cluster de charges de travail est constitué des composants suivants :
- Plan de contrôle. S’exécute sur une distribution Linux et contient des composants de serveur d’API pour l’interaction avec l’API Kubernetes, et un magasin de clés-valeurs distribuées (etcd) pour stocker l’ensemble de la configuration et des données du cluster.
- Équilibreur de charge. S’exécute sur une machine virtuelle Linux et fournit des services à charge équilibrée pour le cluster de charges de travail.
- Des nœuds Worker. S’exécutent sur un système d’exploitation Windows ou Linux qui héberge des applications conteneurisées.
- Des ressources Kubernetes. Les pods représentent une seule instance de votre application, et ont généralement un mappage de type 1:1 avec un conteneur. Certains pods peuvent cependant contenir plusieurs conteneurs. Les déploiements représentent un ou plusieurs pods identiques. Les pods et les déploiements sont regroupés logiquement dans un espace de noms qui contrôle l’accès à la gestion des ressources.
Configuration requise pour le réseau
Kubernetes fournit une couche d’abstraction aux réseaux virtuels en les connectant aux nœuds Kubernetes. Il fournit également une connectivité entrante et sortante pour les pods via le composant kube-proxy. La plateforme Azure Stack HCI simplifie encore plus le déploiement en configurant la machine virtuelle de l’équilibreur de charge HAProxy.
Notes
Pour plus d’informations sur la conception et l’implémentation des concepts réseau concernant le déploiement de nœuds AKS sur des clusters Azure Stack HCI et Windows Server, consultez le deuxième article de cette série : Architecture réseau.
L’architecture utilise un réseau virtuel qui alloue des adresses IP à l’aide de l’une des options réseau suivantes :
- Réseau IP statique. Utilise un pool d’adresses statique et défini pour tous les objets du déploiement. Il fournit un avantage supplémentaire en garantissant que la charge de travail et l’application seront toujours accessibles. Il s’agit de la méthode recommandée.
- Réseaux DHCP. Alloue des adresses IP dynamiques aux nœuds Kubernetes, aux machines virtuelles sous-jacentes et aux équilibreurs de charge en utilisant un serveur DHCP.
Un pool d’adresses IP virtuelles est une plage d’adresses IP réservées qui sont utilisées pour allouer des adresses IP au serveur d’API de cluster Kubernetes, et pour les services Kubernetes.
Utilisez Project Calico pour Kubernetes afin d’obtenir d’autres fonctionnalités réseau, telles que la stratégie réseau et le contrôle de flux.
Exigences de stockage
Pour chaque serveur du cluster, utilisez des lecteurs de même type, ayant la même taille et le même modèle. Azure Stack HCI utilise des lecteurs SATA, SAS, NVMe ou PMEM qui sont chacun physiquement attachés à un serveur. Pour les volumes de cluster, HCI utilise la technologie de stockage à définition logicielle (espaces de stockage direct) dans le but de combiner les lecteurs physiques du pool de stockage à des fins de tolérance de panne, de scalabilité et de performances. Les applications qui s’exécutent dans Kubernetes sur Azure Stack HCI s’attendent souvent à ce que les options de stockage suivantes soient disponibles :
- Volumes. Représentent un moyen de stocker, de récupérer et de conserver les données entre les pods et tout au long du cycle de vie des applications.
- Volumes persistants. Ressource de stockage créée et gérée par l’API Kubernetes, et qui peut persister au-delà de la durée de vie d’un pod donné.
Vous pouvez définir des classes de stockage pour différents niveaux et emplacements afin d’optimiser les coûts et les performances. Les classes de stockage prennent en charge le provisionnement dynamique des volumes persistants et définissent reclaimPolicy afin de spécifier l’action de la ressource de stockage sous-jacente pour gérer les volumes persistants lorsque le pod est supprimé.
Gérer AKS sur Azure Stack HCI
Vous pouvez gérer AKS sur Azure Stack HCI à l’aide des options de gestion suivantes :
- Windows Admin Center. Offre une interface utilisateur intuitive pour l’opérateur Kubernetes afin de gérer le cycle de vie des clusters Azure Kubernetes Service sur Azure Stack HCI.
- PowerShell. Facilite le téléchargement, la configuration et le déploiement d’AKS sur Azure Stack HCI. Le module PowerShell prend également en charge le déploiement, la configuration d’autres clusters de charges de travail, ainsi que la reconfiguration de clusters de charges de travail existants.
spécifications relatives à Active Directory ;
Pour une gestion optimale, intégrez AKS sur Azure Stack HCI ou des clusters de basculement Windows Server Datacenter à un environnement Active Directory Domain Services (AD DS). Lorsque cela est possible, utilisez des unités d’organisation distinctes pour les serveurs et les services d’AKS sur Azure Stack HCI, afin de fournir des autorisations et un contrôle des accès plus précis. L’intégration d’Active Directory à Azure Kubernetes Service sur Azure Stack HCI permet à l’utilisateur d’un ordinateur Windows joint à un domaine de se connecter au serveur d’API (avec kubectl) à l’aide de ses informations d’identification d’authentification unique (SSO).
Recommandations
Les recommandations suivantes s’appliquent à la plupart des scénarios. Suivez les recommandations, sauf si vous avez un besoin spécifique qui vous oblige à ne pas les suivre.
Intégrer des déploiements AKS sur HCI à Azure Arc
Pour réduire le coût total de possession, intégrez les déploiements AKS à Azure Arc. Pour cela, vous pouvez utiliser les services Azure suivants :
- Azure Monitor Container Insights. Monitore les performances des charges de travail de conteneur qui s’exécutent sur les clusters Linux et Windows. Il collecte des métriques sur la mémoire et le processeur à partir des contrôleurs, des nœuds et des conteneurs via l’API de métriques. Avec Container Insights, vous pouvez identifier l’utilisation de la mémoire et du processeur, détecter les performances globales du pod, comprendre le comportement du cluster et configurer des alertes pour un monitoring proactif.
- Fonctionnalités d’automatisation. AKS offre une large gamme de fonctionnalités d’automatisation, avec des mises à jour du système d’exploitation associées à des mises à jour de pile complète, notamment des microprogrammes et des pilotes fournis par les fournisseurs et partenaires Azure Stack HCI. Vous pouvez exécuter Windows PowerShell localement à partir de l’un des serveurs Azure Stack HCI ou à distance à partir d’un ordinateur de gestion. L’intégration à Azure Automation et Azure Arc facilite l’implémentation d’un large éventail de scénarios d’automatisation pour les charges de travail virtualisées et conteneurisées.
- Velero et Stockage Blob Azure. Velero est un outil open source qui prend en charge la sauvegarde à la demande, la sauvegarde planifiée et la restauration de tous les objets du cluster Kubernetes pour toutes les ressources définies et stockées dans une base de données etcd sous la forme de définitions de ressources personnalisées (CRD) Kubernetes. Il assure la sauvegarde des ressources et volumes Kubernetes pour l’ensemble d’un cluster, ou une partie d’un cluster, à l’aide d’espaces de noms ou de sélecteurs d’étiquette. Stockez le jeu de sauvegarde créé avec l’outil Velero dans un compte de stockage Azure, à l’intérieur d’un conteneur d’objets blob.
- Kubernetes Service avec Azure Arc. Fournit une représentation Azure Resource Manager d’un cluster AKS sur Azure Stack HCI. Déployez des agents Azure Arc dans un espace de noms Kubernetes pour collecter des journaux et des métriques, ainsi que pour rassembler les métadonnées du cluster, la version du cluster et le nombre de nœuds, et faire en sorte que les agents présentent des performances optimales.
- Azure Policy. Déployez et appliquez des stratégies de sécurité intégrées sur un cluster AKS à l’aide d’Azure Policy. Vous pouvez également utiliser la définition de stratégie personnalisée pour appliquer GitOps, ce qui consiste à déclarer l’état souhaité de la configuration Kubernetes (déploiements, espaces de noms, etc.) dans un dépôt Git.
- Azure Policy pour Kubernetes. Gère les stratégies de cluster internes implémentées par Gatekeeper, déploie la définition de stratégie dans le cluster en tant que modèle de contrainte et signale l’état de conformité de vos clusters Kubernetes à partir d’un emplacement unique.
- RBAC Azure. Utilisez-le pour l’attribution de rôles et pour gérer l’accès à Kubernetes avec Azure Arc.
Considérations
Ces considérations implémentent les piliers d’Azure Well-Architected Framework qui est un ensemble de principes directeurs qui permettent d’améliorer la qualité d’une charge de travail. Pour plus d’informations, consultez Microsoft Azure Well-Architected Framework.
Fiabilité
- Implémentez une machine virtuelle hautement disponible dans le cluster de gestion ainsi que plusieurs hôtes dans le cluster Kubernetes pour satisfaire au niveau minimal de disponibilité pour les charges de travail.
- Sauvegarder et restaurer des clusters de charges de travail avec Velero et le stockage Blob Azure. Définissez des objectifs de disponibilité et de récupération répondant aux besoins de l’entreprise.
- Les déploiements AKS utilisent le clustering de basculement et la migration dynamique pour assurer la haute disponibilité et la tolérance de panne. La migration dynamique est une fonctionnalité Hyper-V qui vous permet de déplacer en toute transparence des machines virtuelles en cours d’exécution d’un hôte Hyper-V vers un autre, sans temps d’arrêt perçu.
- Configurez les déploiements pour qu’ils utilisent les fonctionnalités Kubernetes, comme Deployments, Affinity Mapping et ReplicaSets, afin de garantir la résilience des pods dans des scénarios d’interruption.
- Vous devez vous assurer que les services référencés dans la section Architecture sont pris en charge dans la région où vous déployez Azure Arc.
- Vous pouvez limiter l’utilisation des images conteneur publiques et tirer (pull) uniquement les registres de conteneurs pour lesquels vous contrôlez le contrat SLA, comme ACR.
Sécurité
Concentrez-vous sur l’ensemble de la pile en sécurisant l’hôte et les conteneurs.
Infrastructure de sécurité
- Utilisez le matériel certifié Azure Stack HCI qui fournit des paramètres prêts à l’emploi concernant le démarrage sécurisé, UEFI et TPM. Ces technologies, associées à la sécurité basée sur la virtualisation (VBS), contribuent à protéger les charges de travail dont la sécurité est primordiale. Pour connaître les solutions validées, consultez Solutions Azure Stack HCI.
- Utilisez le démarrage sécurisé pour que le serveur démarre uniquement les logiciels approuvés par un fabricant OEM.
- Utilisez UEFI pour contrôler le processus de démarrage du serveur.
- Utilisez le module de plateforme sécurisée (TPM) pour stocker les clés de chiffrement et isoler toutes les fonctions matérielles liées à la sécurité.
- Le chiffrement de lecteur BitLocker vous permet de chiffrer les volumes Espaces de stockage direct au repos.
- Configurez des stratégies réseau Calico afin de définir des règles d’isolation réseau entre les conteneurs.
- Pour des exigences de sécurité accrues, vous pouvez déployer un cluster de charges de travail sur un serveur Windows dédié.
- Utilisez Microsoft Defender pour le cloud, disponible via Windows Admin Center, pour gérer de manière centralisée les paramètres de sécurité des serveurs et des clusters. Il fournit une protection contre les menaces pour vos clusters Kubernetes avec Arc. L’extension Microsoft Defender pour le cloud collecte les données des nœuds du cluster et les envoie au back-end Azure Defender pour Kubernetes dans le cloud afin d’effectuer une analyse plus approfondie.
- Sécurisez les communications avec des certificats.
- Opérez une rotation des clés de chiffrement du magasin des secrets Kubernetes (etcd) à l’aide du plug-in Serveur gestionnaire de clés (KMS).
Sécurité des applications
- Utilisez l’extension du fournisseur de secrets Azure Key Vault sur votre instance AKS sur Azure Stack HCI pour mieux protéger les secrets utilisés par les différentes applications, en les stockant dans le service Azure Key Vault.
- Utilisez le module complémentaire AKS Open Service Mesh pour sécuriser la communication de service à service en activant le protocole TLS mutuel (mTLS). Vous pouvez également utiliser ce module complémentaire pour définir et exécuter des stratégies de contrôle d’accès précis pour les services.
- Utilisez Azure Policy pour Kubernetes afin d’appliquer des stratégies de sécurité de cluster, comme des pods sans privilèges.
- Utilisez une instance Azure Container Registry qui contient l’analyse des vulnérabilités dans le dépôt de son conteneur.
- Utilisez des comptes de sécurité gérés par un groupe pour les charges de travail Windows dont l’hôte n’est pas joint à un domaine. (Applicable uniquement pour Windows Server.)
Sécurité du conteneur
- Renforcez l’environnement hôte et démon en supprimant les services inutiles.
- Ne conservez pas les secrets dans les images et montez-les uniquement via le moteur d’orchestration de conteneur.
- Sécurisez les images dans une instance Azure Container Registry qui prend en charge l’analyse des vulnérabilités et RBAC.
- Utilisez l’isolation des conteneurs et évitez d’exécuter des conteneurs en mode privilégié pour empêcher les attaquants d’élever les privilèges si le conteneur est compromis.
Optimisation des coûts
- Utilisez la calculatrice de prix Azure pour estimer les coûts des services utilisés dans l’architecture. La section Optimisation des coûts de Microsoft Azure Well-Architected Framework décrit d’autres bonnes pratiques. Pour plus d’informations, consultez Détails tarifaires.
- Vous pouvez implémenter l’Hyper-Threading sur votre ordinateur physique pour optimiser le coût, car l’unité de facturation d’AKS est un cœur virtuel.
Excellence opérationnelle
- Assistant Création d’un cluster. Faites l’expérience d’un provisionnement et d’une gestion simplifiés grâce à Windows Admin Center. L’Assistant Création d’un cluster de Windows Admin Center fournit une interface pilotée par un assistant pour vous guider tout au long du processus de création d’un cluster étendu Azure Stack HCI. L’Assistant Création d’un cluster est un compromis entre la facilité et la possibilité de créer des scripts de déploiement dont vous pouvez contrôler le code source à des fins d’audit et répéter sur plusieurs déploiements. De même, Windows Admin Center simplifie le processus de gestion des machines virtuelles Azure Stack HCI.
- Azure Arc. Procédez à une intégration à Azure Arc ou à une gamme de services Azure qui fournissent des fonctionnalités supplémentaires de gestion, de maintenance et de résilience (par exemple, Azure Monitor et Log Analytics).
- GitOps. Au lieu de configurer manuellement les composants Kubernetes, utilisez des outils automatisés pour appliquer les configurations à un cluster Kubernetes, car ces configurations sont archivées dans un dépôt source. Ce processus est souvent appelé GitOps. Les solutions GitOps populaires pour Kubernetes incluent Flux et Argo CD. Dans cette architecture, nous vous recommandons d’utiliser l’extension GitOps fournie par Microsoft et basée sur Flux.
- Open Service Mesh (OSM) avec Azure Arc. Maillage de services natif Cloud léger et extensible qui permet aux utilisateurs de gérer et de sécuriser uniformément les environnements de microservices hautement dynamiques et de bénéficier de fonctionnalités d’observabilité prêtes à l’emploi.
Efficacité des performances
- Utilisez du matériel certifié Azure Stack HCI pour améliorer la durée de bon fonctionnement et les performances des applications, simplifier la gestion et l’exploitation, et réduire le coût total de possession.
- Découvrez les limites d’AKS sur Azure Stack HCI. Microsoft prend en charge les déploiements AKS sur Azure Stack avec un maximum de 8 serveurs physiques par cluster, 8 clusters Kubernetes et 200 machines virtuelles.
- La mise à l’échelle d’AKS sur Azure Stack HCI dépend du nombre de nœuds Worker et de clusters cibles. Pour dimensionner correctement le matériel pour les nœuds Worker, vous devez anticiper le nombre de pods, de conteneurs et de nœuds Worker d’un cluster cible. Vous devez réserver au moins 15 % de la capacité d’Azure Stack HCI aux défaillances planifiées et non planifiées. Pour optimiser les performances, utilisez efficacement les ressources de calcul pour répondre à la configuration système requise et maintenir cette efficacité à mesure que la demande et les technologies évoluent. La règle générale est que si un nœud est hors connexion pendant la maintenance ou pendant une défaillance non planifiée, les nœuds restants doivent avoir suffisamment de capacité pour gérer la charge accrue.
- Vous pouvez augmenter la taille de la machine virtuelle de l’équilibreur de charge si vous exécutez de nombreux services Kubernetes dans chaque cluster cible.
- AKS sur Azure Stack HCI distribue les nœuds Worker de chaque pool de nœuds dans un cluster cible à l’aide d’une logique de placement Azure Stack HCI.
- Planifiez des réservations d’adresses IP pour configurer des hôtes AKS, des clusters de charges de travail, des serveurs d’API de cluster, des services Kubernetes et des services d’application. Microsoft recommande de réserver un minimum de 256 adresses IP pour le déploiement d’AKS sur Azure Stack HCI.
- Vous pouvez implémenter un contrôleur d’entrée qui fonctionne au niveau de la couche 7 et utilise des règles plus intelligentes pour distribuer le trafic d’application.
- Implémentez l’optimisation des performances réseau pour l’allocation de bande passante au trafic.
- Utilisez l’accélération GPU pour les charges de travail étendues.
Contributeurs
Cet article est géré par Microsoft. Il a été écrit à l’origine par les contributeurs suivants.
Principaux auteurs :
- Lisa DenBeste | Project Management Program Manager
- Kenny Harder | Project Manager
- Mike Kostersitz | Principal Program Manager Lead
- Meg Olsen | Principal
- Nate Waters | Product Marketing Manager
Autres contributeurs :
- Walter Oliver | Senior Program Manager