Perspective d’Azure Well-Architected Framework sur Azure Kubernetes Service (AKS)
Azure Kubernetes Service (AKS) est un service Kubernetes managé que vous pouvez utiliser pour déployer et gérer des applications conteneurisées. Comme pour d’autres services managés, AKS décharge une grande partie de la surcharge opérationnelle sur Azure tout en fournissant des fonctionnalités de haute disponibilité, d’extensibilité et de portabilité à la charge de travail.
Cet article part du principe que, en tant qu’architecte, vous avez examiné l’arbre de décision de calcul et choisi AKS comme calcul pour votre charge de travail. Les conseils de cet article fournissent des recommandations architecturales qui sont mappées aux principes des piliers du cadre bien architecturé d'Azure.
Important
Comment utiliser ce guide
Chaque section dispose d’une liste de contrôle de conception qui présente des domaines d’intérêt architecturaux, ainsi que des stratégies de conception localisées dans l’étendue technologique.
Sont également incluses les recommandations relatives aux fonctionnalités technologiques qui peuvent aider à matérialiser ces stratégies. Les recommandations ne représentent pas une liste exhaustive de toutes les configurations disponibles pour AKS et ses dépendances. Au lieu de cela, ils énumèrent les principales recommandations mappées aux perspectives de conception. Utilisez les recommandations pour créer votre preuve de concept ou pour optimiser vos environnements existants.
Architecture fondamentale qui illustre les recommandations clés : architecture de base AKS.
Champ d'application de la technologie
Cette révision se concentre sur les décisions liées aux ressources Azure suivantes :
- AKS
Lorsque vous discutez des meilleures pratiques des piliers du Well-Architected Framework pour l'AKS, il est important de faire la distinction entre le cluster et la charge de travail. Les meilleures pratiques de cluster sont une responsabilité partagée entre l’administrateur du cluster et son fournisseur de ressources, tandis que les meilleures pratiques de charge de travail sont le domaine d’un développeur. Cet article comporte des considérations et des recommandations pour chacun de ces rôles.
Remarque
Les piliers suivants incluent une liste de contrôle de conception et une liste de recommandations qui indiquent si chaque choix s'applique à l'architecture de cluster , à l'architecture de charge de travail , ou aux deux.
Fiabilité
L'objectif du pilier Fiabilité est de fournir une fonctionnalité continue en construisant suffisamment de résilience et la capacité de récupérer rapidement en cas de défaillance.
principes de conception de fiabilité fournir une stratégie de conception de haut niveau appliquée pour les composants individuels, les flux système et le système dans son ensemble.
Check-list pour la conception
Commencez votre stratégie de conception basée sur la checklist de revue de conception pour la fiabilité. Déterminez sa pertinence pour vos besoins métier tout en gardant à l’esprit les fonctionnalités d’AKS et de ses dépendances. Étendez la stratégie pour inclure davantage d’approches en fonction des besoins.
(Cluster) Construire des redondances pour améliorer la résilience. Utilisez des zones de disponibilité pour vos clusters AKS dans le cadre de votre stratégie de résilience afin d'augmenter la disponibilité lorsque vous déployez dans une seule région. De nombreuses régions Azure fournissent des zones de disponibilité. Les zones sont assez proches pour avoir des connexions à faible latence entre elles, mais assez à part pour réduire la probabilité que les pannes locales affectent plusieurs zones.
Pour les charges de travail critiques, déployez plusieurs clusters dans différentes régions Azure. En distribuant géographiquement des clusters AKS, vous pouvez obtenir une résilience plus élevée et réduire les effets des défaillances régionales. Une stratégie multirégion permet d’optimiser la disponibilité et de fournir une continuité d’activité. Les charges de travail accessibles sur Internet doivent utiliser Azure Front Door ou Azure Traffic Manager pour acheminer le trafic à l’échelle mondiale sur les clusters AKS. Pour plus d’informations, consultez Stratégie Multirégion.
Planifiez l’espace d’adressage IP afin de vous assurer que votre cluster peut s'étendre et gérer fiablement le trafic de basculement dans des topologies multi-cluster.
(Cluster et charge de travail) Surveiller la fiabilité et les indicateurs d’intégrité globaux du cluster et des charges de travail. Collecter les journaux et les métriques pour surveiller l’intégrité de la charge de travail, identifier les tendances de performances et de fiabilité et résoudre les problèmes. Passez en revue les meilleures pratiques pour surveiller Kubernetes avec Azure Monitor et le guide Well-Architected de modélisation de la santé pour les charges de travail afin de vous aider à concevoir la solution de surveillance de la fiabilité et de la santé pour votre solution AKS.
Assurez-vous que les charges de travail sont conçues pour prendre en charge la mise à l'échelle horizontale et pour évaluer la disponibilité et la santé des applications.
(Cluster et charge de travail) Hébergez les pods d'application dans des pools de nœuds utilisateur. En isolant les pods système des charges de travail d’application, vous vous assurez que les services essentiels d'AKS ne sont pas affectés par les demandes de ressources ou les problèmes potentiels causés par une charge de travail qui s'exécute sur des pools de nœuds utilisateur.
Assurez-vous que votre charge de travail s'exécute sur des pools de nœuds d'utilisateurs et choisissez la bonne taille de SKU. Au minimum, incluez deux nœuds pour les pools de nœuds utilisateur et trois nœuds pour le pool de nœuds système.
(Cluster et charge de travail) Factoriser le contrat de niveau de service (SLA) de temps d’activité AKS dans vos cibles de disponibilité et de récupération. Pour définir les cibles de fiabilité et de récupération pour votre cluster et votre charge de travail, suivez les instructions de Recommandations pour définir des cibles de fiabilité. Formulez ensuite une conception qui répond à ces cibles.
(Cluster et charge de travail) Protégez le service de cluster AKS à l’aide de Sauvegarde Azure en stockant des points de récupération dans un coffre de sauvegarde et effectuez une restauration pendant tout scénario de sinistre. Pour sauvegarder et restaurer les applications conteneurisées et les données exécutées dans des clusters AKS, suivez les instructions de la vue d’ensemble de la sauvegarde AKS pour la configuration de la protection.
Recommandations
Recommandation | Avantage |
---|---|
(Cluster et charge de travail) Contrôlez la planification des pods à l’aide des sélecteurs de nœuds et de l’affinité. Dans AKS, le planificateur Kubernetes peut isoler logiquement les charges de travail par matériel dans le nœud. Contrairement aux tolérances, les pods qui n'ont pas de sélecteur de nœud correspondant peuvent être planifiés sur des nœuds étiquetés, mais la priorité est donnée aux pods qui définissent le sélecteur de nœud correspondant. |
L’affinité de nœud entraîne une plus grande flexibilité, ce qui vous permet de définir ce qui se passe si le pod ne peut pas être mis en correspondance avec un nœud. |
(Cluster) Choisissez le plug-in réseau approprié en fonction de la configuration réseau requise et du dimensionnement du cluster. Différents plug-ins réseau fournissent différents niveaux de fonctionnalités. Azure Container Networking Interface (Azure CNI) est nécessaire pour des scénarios spécifiques, tels que des pools de nœuds Windows, certaines exigences de mise en réseau et des stratégies réseau Kubernetes. Pour plus d’informations, consultez Kubenet et Azure CNI. |
Le plug-in réseau approprié peut vous aider à garantir une meilleure compatibilité et des performances. |
(Cluster et charge de travail) Utilisez le SLA de disponibilité AKS pour les clusters de niveau production. | La charge de travail peut prendre en charge des cibles de disponibilité plus élevées en raison des garanties de disponibilité supérieures du point de terminaison du serveur d’API Kubernetes pour les clusters AKS. |
(Cluster) Utilisez zones de disponibilité pour optimiser la résilience au sein d’une région Azure en distribuant des nœuds d’agent AKS entre des centres de données physiquement distincts. Si des exigences de colocalité existent, utilisez un déploiement AKS basé sur des ensembles de machines virtuelles régulières dans une zone unique ou utilisez des groupes de placement de proximité pour minimiser la latence entre les nœuds. |
En répartissant les pools de nœuds entre plusieurs zones, les nœuds d'un pool continuent de fonctionner même si une autre zone tombe en panne. |
(Cluster et charge de travail) Définissez les requêtes et les limites des ressources des pods dans les manifestes de déploiement des applications. Appliquez ces limites à l’aide d’Azure Policy. | Les limites de ressources processeur et mémoire du conteneur sont nécessaires pour empêcher l’épuisement des ressources dans votre cluster Kubernetes. |
(Cluster et charge de travail) Conservez le pool de nœuds système isolé des charges de travail d’application. Les pools de nœuds système nécessitent une référence SKU de machine virtuelle d’au moins 2 processeurs virtuels et 4 Go de mémoire. Nous vous recommandons d’utiliser 4 processeurs virtuels ou plus. Pour plus d'informations, voir Pools de nœuds système et utilisateur. |
Le pool de nœuds système héberge des pods système critiques qui sont essentiels pour le plan de contrôle de votre cluster. En isolant ces modules système des charges de travail des applications, vous vous assurez que les services essentiels ne sont pas affectés par les demandes de ressources ou les problèmes potentiels causés par une charge de travail. |
(Cluster et charge de travail) Séparez les applications des pools de nœuds dédiés en fonction des exigences spécifiques. Évitez un grand nombre de pools de nœuds pour réduire la surcharge de gestion. | Les applications peuvent partager la même configuration et avoir besoin de machines virtuelles compatibles GPU, de processeurs ou de machines virtuelles optimisées pour la mémoire, ou de la possibilité de s'étendre à zéro. En dédicant des pools de nœuds à des applications spécifiques, vous pouvez vous assurer que chaque application obtient les ressources dont elle a besoin sans surprovisionner ou sous-utiliser des ressources. |
(Cluster) Utilisez une passerelle NAT pour les clusters qui exécutent des charges de travail effectuant de nombreuses connexions sortantes simultanées. | Azure NAT Gateway prend en charge le trafic de sortie fiable à grande échelle et vous aide à éviter les problèmes de fiabilité en appliquant des limitations d’Azure Load Balancer à un trafic sortant simultané élevé. |
(Cluster et charge de travail) Utilisez Sauvegarde Azure pour protéger le cluster AKS et restaurer dans d’autres régions lors d’un sinistre. Azure Backup prend en charge les opérations de sauvegarde et de restauration d’applications conteneurisées, ainsi que des données pour l’état du cluster et les données d’application. Vous pouvez utiliser les sauvegardes dans un scénario de sinistre régional et récupérer des sauvegardes. |
Sauvegarde Azure avec Azure Kubernetes Service (AKS) offre une solution entièrement managée, évolutive, sécurisée et économique. Améliore la fiabilité de la charge de travail sans la complexité de la configuration et de la maintenance de l’infrastructure de sauvegarde. |
Sécurité
L’objectif du pilier sécurité est de fournir des garanties de confidentialité, d'intégrité et de disponibilité à la charge de travail.
Les principes de conception de sécurité fournissent une stratégie de conception de haut niveau pour atteindre ces objectifs en appliquant des approches à la conception technique d'AKS.
Check-list pour la conception
Commencez votre stratégie de conception en vous basant sur la liste de contrôle de l'examen de la conception pour la sécurité et identifiez les vulnérabilités et les contrôles pour améliorer la posture de sécurité Familiarisez-vous avec les concepts de sécurité de l'AKS et évaluez les recommandations de durcissement de la sécurité basées sur le benchmark CIS Kubernetes. Étendez la stratégie pour inclure davantage d’approches en fonction des besoins.
(Cluster) Intégrer Microsoft Entra ID pour la gestion des identités et des accès. Centraliser la gestion des identités pour votre cluster à l’aide de Microsoft Entra ID. Tout changement au niveau du compte d’utilisateur ou de l’état du groupe est automatiquement mis à jour dans l’accès au cluster AKS. Établir l’identité comme périmètre de sécurité principal. Les développeurs et propriétaires d’applications de votre cluster Kubernetes doivent pouvoir accéder à différentes ressources.
Utilisez le contrôle d'accès basé sur les rôles (RBAC) de Kubernetes avec Microsoft Entra ID pour un accès au moindre privilège. Protégez la configuration et les secrets en réduisant l’allocation des privilèges d’administrateur.
(Cluster) Intégrer à la surveillance de la sécurité et aux outils de gestion des événements et des informations de sécurité. Utiliser Microsoft Defender pour conteneurs avec Microsoft Sentinel pour détecter et répondre rapidement aux menaces sur vos clusters et les charges de travail qui s’exécutent sur eux. Activez le connecteur AKS de Microsoft Sentinel afin de transmettre vos journaux de diagnostic AKS à Microsoft Sentinel.
(Cluster et charge de travail) Implémenter des contrôles de segmentation et de réseau. Pour empêcher l’exfiltration des données, assurez-vous que seul le trafic autorisé et sécurisé est autorisé et qu’il contient le rayon d’explosion d’une violation de sécurité.
Envisagez d’utiliser un cluster AKS privé pour vous assurer que le trafic de gestion des clusters vers votre serveur d’API reste sur votre réseau privé. Vous pouvez également utiliser la liste d'autorisation du serveur API pour les clusters publics.
(Charge de travail) Utiliser un pare-feu d’applications web (WAF) pour analyser le trafic entrant pour détecter les attaques potentielles. WAF peut détecter et atténuer les menaces en temps réel pour bloquer le trafic malveillant avant qu’il n’atteigne vos applications. Il offre une protection robuste contre les attaques courantes basées sur le Web, telles que l'injection SQL, le cross-site scripting et d'autres vulnérabilités de l'Open Web Application Security Project. Certains équilibreurs de charge, tels que Azure Application Gateway ou Azure Front Door ont un WAF intégré.
(Charge de travail) Maintenez la chaîne d'approvisionnement logicielle d'une charge de travail durcie. Veillez à ce que votre pipeline d'intégration continue et de livraison continue soit durci avec l'analyse consciente des conteneurs.
(Cluster et charge de travail) Implémenter une protection supplémentaire pour les charges de travail sécurisées spécialisées. Si votre cluster doit exécuter une charge de travail sensible, vous devrez peut-être déployer un cluster privé. Voici quelques exemples :
- Norme de sécurité des données du secteur des cartes de paiement (PCI-DSS 3.2.1) : cluster réglementé AKS pour PCI-DSS 3.2.1
- Prise en charge et exigences de niveau d'impact 5 (IL5) du ministère de la défense avec AKS : Exigences d'isolation IL5 du gouvernement Azure.
Recommandations
Recommandation | Avantage |
---|---|
(Cluster) Utilisez des identités gérées sur le cluster. | Vous pouvez éviter la surcharge associée à la gestion et à la rotation des principes de service. |
(Charge de travail) Utilisez ID de charge de travail Microsoft Entra avec AKS pour accéder aux ressources protégées microsoft Entra, telles qu’Azure Key Vault et Microsoft Graph, à partir de votre charge de travail. | Utilisez les AKS Workload ID pour protéger l'accès aux ressources Azure en utilisant Microsoft Entra ID RBAC sans avoir à gérer les informations d'identification directement dans votre code. |
(Cluster) Utilisez Microsoft Entra ID pour vous authentifier auprès d'Azure Container Registry à partir d'AKS. | À l’aide de l’ID Microsoft Entra, AKS peut s’authentifier auprès de Container Registry sans utiliser de secrets imagePullSecrets . |
(Cluster) Sécurisez le trafic réseau vers votre serveur d’API à l’aide de cluster AKS privé si les exigences de charge de travail nécessitent des niveaux de segmentation plus élevés. | Par défaut, le trafic réseau entre vos pools de nœuds et le serveur d’API voyage le réseau principal Microsoft. En utilisant un cluster privé, vous pouvez vous assurer que le trafic réseau vers votre serveur d’API reste sur le réseau privé uniquement. |
(Cluster) Pour les clusters AKS publics, utilisez des plages d’adresses IP autorisées par le serveur d’API. Incluez des sources telles que les adresses IP publiques de vos agents de construction de déploiement, de la gestion des opérations et du point de sortie des pools de nœuds, comme le pare-feu Azure. | Lorsque vous utilisez des clusters publics, vous pouvez réduire considérablement la surface d’attaque de votre cluster AKS en limitant le trafic pouvant atteindre le serveur d’API de vos clusters. |
(Cluster) Protégez le serveur d’API à l’aide de Microsoft Entra ID RBAC. Désactiver les comptes locaux pour appliquer l’accès à tous les clusters à l’aide d’identités basées sur l’ID Microsoft Entra. |
La sécurisation de l’accès au serveur d’API Kubernetes est l’une des choses les plus importantes que vous pouvez faire pour sécuriser votre cluster. Intégrez Kubernetes RBAC à l’ID Microsoft Entra pour contrôler l’accès au serveur d’API. |
(Cluster) Utilisez les stratégies de réseau Azure ou Calico. | En utilisant des stratégies, vous pouvez sécuriser et contrôler le trafic réseau entre les pods d’un cluster. Calico fournit un ensemble plus riche de fonctionnalités, notamment l'ordre et la priorité des politiques, les règles de rejet et des règles de correspondance plus flexibles. |
(Cluster) Sécurisez les clusters et les pods en utilisant Azure Policy. | Azure Policy peut vous aider à appliquer à grande échelle les mesures de mise en œuvre et de protection de vos clusters de manière centralisée et cohérente. Il peut également contrôler les fonctions accordées aux pods et détecter toute activité qui enfreint la politique de l'entreprise. |
(Cluster) Sécuriser l’accès des conteneurs aux ressources. Limitez l’accès aux actions que les conteneurs peuvent effectuer. Fournissez le plus petit nombre d’autorisations et évitez d’utiliser l’élévation des privilèges or de racine. Pour les conteneurs basés sur Linux, consultez l'accès sécurisé aux ressources du conteneur en utilisant les fonctionnalités de sécurité intégrées de Linux. |
En limitant les autorisations et en évitant l’utilisation de l’escalade racine ou privilégiée, vous pouvez réduire le risque de violations de sécurité. Vous pouvez vous assurer que, même si un conteneur est compromis, les dommages potentiels sont réduits. |
(Cluster) Contrôlez le trafic de sortie du cluster en vous assurant que le trafic sortant de votre cluster transite par un point de sécurité réseau tel que Pare-feu Azure ou un proxy HTTP. | En acheminant le trafic sortant via le Pare-feu Azure ou un proxy HTTP, vous pouvez vous aider à appliquer des stratégies de sécurité qui empêchent l’accès non autorisé et l’exfiltration des données. Cette approche simplifie également l’administration des stratégies de sécurité et facilite l’application de règles cohérentes sur l’ensemble de votre cluster AKS. |
(Cluster) Utilisez le pilote CSI open source Microsoft Entra ID et Secrets Store avec Key Vault. | Ces fonctionnalités vous aident à protéger et à faire pivoter des secrets, des certificats et des chaînes de connexion dans Key Vault à l’aide d’un chiffrement fort. Ils fournissent un journal d’audit d’accès et conservent les secrets principaux hors du pipeline de déploiement. |
(Cluster) Utilisez Microsoft Defender pour les conteneurs. | Microsoft Defender pour conteneurs vous aide à surveiller et à maintenir la sécurité de vos clusters, conteneurs et applications. |
Optimisation des coûts
L’optimisation des coûts se concentre sur la détection des modèles de dépense, la hiérarchisation des investissements dans les domaines critiques et l’optimisation dans d’autres pour répondre au budget de l’organisation tout en répondant aux besoins de l’entreprise.
Les principes de conception de l’optimisation des coûts fournir une stratégie de conception de haut niveau pour atteindre ces objectifs et faire des compromis si nécessaire dans la conception technique liée à AKS et à son environnement.
Check-list pour la conception
Lancez votre stratégie de conception en vous basant sur la liste de contrôle de l'optimisation des coûts pour les investissements. Ajustez la conception afin que la charge de travail soit alignée sur le budget alloué pour la charge de travail. Votre conception doit utiliser les fonctionnalités Azure appropriées, surveiller les investissements et trouver des opportunités d’optimisation au fil du temps.
(Cluster) Inclure les niveaux tarifaires pour AKS dans votre modèle de coût. Pour estimer les coûts, utilisez la calculatrice de prix Azure et testez différentes plans de configuration et de paiement dans la calculatrice.
(Cluster) Obtenir les meilleurs tarifs pour votre charge de travail. Utiliser la référence SKU de machine virtuelle appropriée pour chaque pool de nœuds, car elle affecte directement le coût d’exécution de vos charges de travail. Le choix d’une machine virtuelle hautes performances sans utilisation appropriée peut entraîner un gaspillage de dépenses. La sélection d’une machine virtuelle moins puissante peut entraîner des problèmes de performances et un temps d’arrêt accru.
Si vous avez planifié correctement la capacité et que votre charge de travail est prévisible et va durer pendant une période prolongée, inscrivez-vous à réservations Azure ou à un plan d’économies pour réduire vos coûts de ressources.
Choisissez machines virtuelles Azure Spot pour utiliser une capacité Azure non utilisée avec des remises significatives. Ces remises peuvent atteindre jusqu'à 90 % des prix de paiement à l'utilisation. Si Azure a besoin de récupérer de la capacité, l’infrastructure Azure exclut les nœuds spot.
Si vous exécutez AKS localement ou en périphérie, vous pouvez également utiliser Azure Hybrid Benefit pour réduire les coûts lorsque vous exécutez des applications conteneurisées dans ces scénarios.
(Cluster et charge de travail) Optimiser les coûts des composants de charge de travail. Choisissez la région la plus rentable pour votre charge de travail. Évaluez les exigences de coût, de latence et de conformité pour vous assurer que vous exécutez votre charge de travail de manière rentable et qu’elle n’affecte pas vos clients ni créez des frais de mise en réseau supplémentaires. La région où vous déployez votre charge de travail dans Azure peut considérablement affecter le coût. En raison de nombreux facteurs, le coût des ressources varie selon chaque région d’Azure.
Conservez des images petites et optimisées pour réduire les coûts, car de nouveaux nœuds doivent télécharger ces images. Les échecs des requêtes des utilisateurs ou les dépassements de délai au démarrage de l'application peuvent entraîner un surprovisionnement. Construisez les images de manière à ce que le conteneur démarre dès que possible afin d'éviter les échecs et les dépassements de délai.
Passez en revue les recommandations d’optimisation des coûts dans Meilleures pratiques pour surveiller Kubernetes avec Azure Monitor pour déterminer la meilleure stratégie de supervision pour vos charges de travail. Analysez les métriques de performances, en commençant par l’UC, la mémoire, le stockage et le réseau, pour identifier les opportunités d’optimisation des coûts par cluster, nœuds et espace de noms.
(Cluster et charge de travail) Optimiser les coûts de mise à l’échelle de la charge de travail. Envisager d’autres configurations de mise à l’échelle verticale et horizontale pour réduire les coûts de mise à l’échelle tout en répondant à toutes les exigences de charge de travail. Utilisez des autoscalers pour effectuer une mise à l’échelle lorsque les charges de travail sont moins actives.
(Cluster et charge de travail) Collecter et analyser les données de coûts. Le fondement de l’optimisation des coûts est la diffusion d’un cluster de réduction des coûts. Développez un état d’esprit d’efficacité des coûts qui inclut la collaboration entre les équipes financières, opérationnelles et d’ingénierie pour favoriser l’alignement sur les objectifs d’économie de coûts et apporter de la transparence aux coûts cloud.
Recommandations
Recommandation | Avantage |
---|---|
(Cluster et charge de travail) Alignez la sélection du SKU AKS et la taille du disque managé avec les exigences de la charge de travail. | La mise en correspondance de votre sélection à vos demandes de charge de travail vous permet de vous assurer que vous ne payez pas pour les ressources inutiles. |
(Cluster) Choisissez les types d’instances de machine virtuelle appropriés pour vos pools de nœuds AKS . Pour déterminer les types d’instances de machine virtuelle appropriés, tenez compte des caractéristiques de la charge de travail, des besoins en ressources et des besoins de disponibilité. |
La sélection du type d’instance de machine virtuelle appropriée est cruciale, car elle affecte directement le coût d’exécution des applications sur AKS. Le choix d’une instance hautes performances sans utilisation appropriée peut entraîner un gaspillage de dépenses. Le choix d’une instance moins puissante peut entraîner des problèmes de performances et un temps d’arrêt accru. |
(Cluster) Choisissez des machines virtuelles basées sur l’architecture Azure Resource Manager plus efficace. AKS prend en charge la création de pools de nœuds Arm64 et d'un mélange de nœuds d'architecture Intel et Resource Manager au sein d'un cluster. | L’architecture Arm64 offre un meilleur rapport prix-performances en raison de sa faible utilisation de l’alimentation et des performances de calcul efficaces. Ces fonctionnalités peuvent améliorer les performances à moindre coût. |
(Cluster) Activez l'autoscaler de cluster pour réduire automatiquement le nombre de nœuds d'agent en réponse à une capacité de ressources excédentaire. | Le scale-down automatique du nombre de nœuds de votre cluster AKS vous permet d’exécuter un cluster efficace lorsque la demande est faible et de monter en puissance lorsque la demande augmente. |
(Cluster) Activez l'autoprovisionnement des nœuds pour automatiser la sélection des SKU de machines virtuelles. | Node autoprovision simplifie le processus de sélection des SKUs et décide, en fonction des besoins en ressources des pods en attente, de la configuration optimale de la machine virtuelle pour exécuter les charges de travail de manière la plus efficace et économique. |
(Charge de travail) Utilisez HorizontalPodAutoscaler pour ajuster le nombre de pods dans un déploiement en fonction de l’utilisation du processeur ou d’autres métriques. | La réduction automatique du nombre de pods lorsque la demande est faible et la mise à l'échelle lorsque la demande augmente se traduisent par un fonctionnement plus rentable de votre charge de travail. |
(Charge de travail) Utilisez VerticalPodAutoscaler (aperçu) pour redimensionner vos pods et définir dynamiquement les requêtes et les limites en fonction de l'utilisation historique. | En définissant des demandes de ressources et des limites sur les conteneurs pour chaque charge de travail, VerticalPodAutoscaler libère l’UC et la mémoire pour d’autres pods et permet d’assurer une utilisation efficace de vos clusters AKS. |
(Cluster) Configurez le module complémentaire d'analyse des coûts AKS. | L’extension de cluster d’analyse des coûts vous permet d’obtenir des informations précises sur les coûts associés à différentes ressources Kubernetes dans vos clusters ou espaces de noms. |
Excellence opérationnelle
L’excellence opérationnelle se concentre principalement sur les procédures des pratiques de développement , l’observabilité, et la gestion des versions.
Les principes de conception d’excellence opérationnelle fournissent une stratégie de conception de haut niveau pour atteindre ces objectifs pour les besoins opérationnels de la charge de travail.
Check-list pour la conception
Démarrez votre stratégie de conception en fonction de la checklist de revue de conception , visant l'excellence opérationnelle, afin de définir des processus pour l'observabilité, les tests et le déploiement. Consultez les meilleures pratiques et le guide des opérations du jour 2 d'AKS pour connaître les principales considérations à comprendre et à mettre en œuvre.
(Cluster) Implémenter une approche de déploiement d’infrastructure en tant que code (IaC). Utiliser une approche de déploiement déclarative basée sur des modèles à l’aide d’outils Bicep, Terraform ou similaires. Assurez-vous que tous les déploiements sont reproductibles, traceables et stockés dans un référentiel de code source. Pour plus d’informations, consultez les guides de démarrage rapide dans la documentation du produit AKS.
(Cluster et charge de travail) Automatiser les déploiements d’infrastructure et de charge de travail. Utiliser des solutions logicielles standard pour gérer, intégrer et automatiser le déploiement de votre cluster et charges de travail. Intégrez des pipelines de déploiement à votre système de contrôle de code source et incorporez des tests automatisés.
Créez un processus automatisé pour vous assurer que vos clusters sont démarrés avec les configurations et les déploiements à l’échelle du cluster nécessaires. Ce processus est généralement effectué à l’aide de GitOps.
Utilisez des processus de déploiement reproductibles et automatisés pour votre charge de travail au sein de votre cycle de vie de développement logiciel.
(Cluster et charge de travail) Implémenter une stratégie de supervision complète. Collecter les journaux et les métriques pour surveiller l’intégrité de la charge de travail, identifier les tendances en matière de performances et de fiabilité, et résoudre les problèmes. Passez en revue les meilleures pratiques pour surveiller Kubernetes avec Azure Monitor et les recommandations Well-Architected pour concevoir et créer un système de surveillance pour déterminer la meilleure stratégie de supervision pour vos charges de travail.
Activez les paramètres de diagnostic pour vous assurer que les interactions du plan de contrôle ou du serveur d’API principal sont journalisées.
La charge de travail doit être conçue pour émettre des données télémétriques pouvant être collectées, qui doivent également inclure les états de disponibilité et de préparation.
(Cluster et charge de travail) Implémenter des tests dans des stratégies de production. Test en production utilise des déploiements réels pour valider et mesurer le comportement et les performances d’une application dans l’environnement de production. Utilisez des pratiques d’ingénierie chaos qui ciblent Kubernetes pour identifier les problèmes de fiabilité des applications ou de la plateforme.
Azure Chaos Studio peut aider à simuler des erreurs et à déclencher des situations de reprise après sinistre.
(Cluster et charge de travail) Appliquer la gouvernance des charges de travail. Azure Policy permet de garantir une conformité cohérente avec les normes organisationnelles, automatise l’application des stratégies et fournit une visibilité centralisée et un contrôle sur vos ressources de cluster.
Consultez la section stratégies Azure pour en savoir plus sur les stratégies intégrées disponibles pour AKS.
(Cluster et charge de travail) Utilisez des déploiements bleu-vert au niveau du cachet pour les charges de travail critiques. Une approche de déploiement bleu-vert au niveau du cachet peut accroître la confiance dans la publication des changements et permet des mises à niveau sans temps d'arrêt, car les compatibilités avec les dépendances en aval comme la plateforme Azure, les fournisseurs de ressources et les modules IaC peuvent être validées.
Kubernetes et contrôleurs d’entrée prennent en charge de nombreux modèles de déploiement avancés pour l’inclusion dans votre processus d’ingénierie de mise en production. Envisagez des modèles tels que les déploiements bleu-vert ou les versions de canari.
(Cluster et charge de travail) Rendre les charges de travail plus durables. Rendre les charges de travail plus durables et plus efficaces dans le cloud nécessite de combiner des efforts autour de d’optimisation des coûts, de réduire les émissions de carboneet d’optimiser la consommation d’énergie. L’optimisation du coût de l’application est l’étape initiale pour rendre les charges de travail plus durables.
Consultez les principes d’ingénierie logicielle durable dans AKS pour apprendre à créer des charges de travail AKS durables et efficaces.
Recommandations
Recommandation | Avantage |
---|---|
(Cluster) Opérationnalisez les normes de configuration des clusters et des pods en utilisant les stratégies Azure pour l'AKS. | Les stratégies Azure pour AKS peuvent vous aider à appliquer l’application à grande échelle et les garanties sur vos clusters de manière centralisée et cohérente. Utilisez les stratégies pour définir les permissions accordées aux pods et assurez la conformité avec les politiques de l'entreprise. |
(Charge de travail) Utilisez Kubernetes Event Driven Autoscaler (KEDA) . | KEDA permet à vos applications de mettre à l’échelle en fonction des événements, comme le nombre d’événements traités. Vous pouvez choisir parmi un catalogue riche de plus de 50 scalers KEDA. |
Efficacité des performances
L'efficacité des performances consiste à maintenir l'expérience de l'utilisateur même en cas d'augmentation de la charge en gérant la capacité. La stratégie inclut la mise à l’échelle des ressources, l’identification et l’optimisation des goulots d’étranglement potentiels et l’optimisation des performances maximales.
Les principes de conception Performance Efficiency fournissent une stratégie de conception de haut niveau pour atteindre ces objectifs de capacité par rapport à l’utilisation attendue.
Check-list pour la conception
Démarrez votre stratégie de conception en utilisant la liste de contrôle de revue de conception pour l'efficacité des performances afin de définir une base de référence fondée sur les indicateurs de performance clés pour AKS.
(Cluster et charge de travail) Effectuez une planification de la capacité. Effectuez et itérez sur un exercice de plan de capacité détaillé qui inclut les UGS, les paramètres autoscale, l'adressage IP et les considérations de basculement.
Après avoir officialisé votre plan de capacité, fréquemment mettez à jour le plan en observant en continu l’utilisation des ressources du cluster.
(Cluster) Définir une stratégie de mise à l’échelle. Configurer la mise à l’échelle pour vous assurer que les ressources sont ajustées efficacement pour répondre efficacement aux demandes de charge de travail sans surutilisation ou gaspillage. Utilisez des fonctionnalités AKS telles que la mise à l’échelle automatique du cluster et HorizontalPodAutoscaler pour répondre dynamiquement aux besoins de votre charge de travail avec moins de contraintes sur les opérations. Optimisez votre charge de travail pour fonctionner et déployer efficacement dans un conteneur.
Passez en revue le guide sur la mise à l'échelle et le partitionnement pour comprendre les différents aspects de la configuration de la mise à l’échelle.
(Cluster et charge de travail) Effectuer des tests de performance. Effectuez des activités de test de charge en continu qui exercent à la fois le pod et le cluster autoscaler. Comparez les résultats aux cibles de performances et aux bases de référence établies.
(Cluster et charge de travail) Mettre à l’échelle les charges de travail et les flux indépendamment. Séparer les charges de travail et les flux dans différents pools de nœuds pour permettre une mise à l’échelle indépendante. Suivez les instructions de Optimiser la conception de charge de travail à l’aide de flux pour identifier et hiérarchiser vos flux.
Recommandations
Recommandation | Avantage |
---|---|
(Cluster) Activez l'autoscaler de cluster pour qu'il ajuste automatiquement le nombre de nœuds d'agent en fonction de la charge de travail. Utilisez la HorizontalPodAutoscaler pour ajuster le nombre de pods dans un déploiement en fonction de l’utilisation du processeur ou d’autres métriques. |
La possibilité d’effectuer automatiquement une augmentation ou une diminution du nombre de nœuds et du nombre de pods dans votre cluster AKS vous permet de gérer un cluster efficace et économique. |
(Cluster et charge de travail) Séparez les charges de travail en différents pools de nœuds et envisagez de faire évoluer les pools de nœuds utilisateurs. | Contrairement aux pools de nœuds système qui nécessitent toujours des nœuds en cours d’exécution, les pools de nœuds utilisateur vous permettent d’effectuer un scale-up ou un scale-down. |
(Charge de travail) Utilisez AKS fonctionnalités avancées du planificateur pour implémenter un équilibrage avancé des ressources pour les charges de travail qui en ont besoin. | Lorsque vous gérez des clusters AKS, vous devez souvent isoler les équipes et les charges de travail. Les fonctionnalités avancées fournies par le planificateur Kubernetes vous permettent de contrôler quels pods peuvent être planifiés sur certains nœuds. Ils vous permettent également de contrôler la façon dont les applications multipodes peuvent être distribuées de manière appropriée sur le cluster. |
(Charge de travail) Utilisez KEDA pour créer un ensemble de règles de mise à l’échelle automatique explicite en fonction des signaux spécifiques à votre charge de travail. | Toutes les décisions de mise à l’échelle ne peuvent pas être dérivées des métriques processeur ou mémoire. Les considérations relatives à l’échelle proviennent souvent de points de données plus complexes ou même externes. KEDA permet à vos applications de se mettre à l'échelle en fonction d'événements, tels que le nombre de messages dans une file d'attente ou la durée du décalage d'une rubrique. |
Stratégies Azure
Azure fournit un ensemble complet de stratégies intégrées liées à AKS qui s’appliquent à la ressource Azure, comme les stratégies Azure classiques et le module complémentaire Azure Policy pour Kubernetes, et au sein du cluster. Un grand nombre de stratégies de ressources Azure Policy sont disponibles dans les variantes Audit/Deny et Deploy If Not Exists. Outre les définitions Azure Policy intégrées, vous pouvez créer des stratégies personnalisées pour la ressource AKS et pour le module complémentaire Azure Policy pour Kubernetes.
Certaines des recommandations de cet article peuvent être auditées via Azure Policy. Par exemple, vous pouvez vérifier les stratégies de cluster suivantes :
- Les clusters ont des sondes d'intégrité de préparation ou de vivacité configurées pour votre pod spec.
- Microsoft Defender pour les stratégies basées sur le cloud.
- Les modes d'authentification et les stratégies de configuration, telles que Microsoft Entra ID et RBAC, ainsi que la désactivation de l'authentification locale.
- Stratégies d’accès réseau du serveur d’API, y compris le cluster privé.
- Stratégies de configuration GitOps.
- Stratégies de paramètres de diagnostic.
- Restrictions de version de l'AKS.
- Empêcher l'invocation de commandes.
Vous pouvez également vérifier les stratégies de cluster et de charge de travail suivantes :
- Initiatives de sécurité des pods de cluster Kubernetes pour les charges de travail Linux.
- Incluez les stratégies de capacité des pods et des conteneurs, telles que AppArmor, sysctl, les plafonds de sécurité, SELinux, seccomp, les conteneurs privilégiés et les informations d'identification de l'API du cluster automount.
- Stratégies de montage, de pilotes de volume et de systèmes de fichiers.
- Stratégies de mise en réseau de pods et de conteneurs, telles que le réseau hôte, le port, les adresses IP externes autorisées, les HTTPs et les équilibreurs de charge internes.
- Restrictions de déploiement de l'espace noms.
- Limites des ressources processeur et mémoire.
Pour une gouvernance complète, passez en revue les définitions intégrées Azure Policy pour Kubernetes et d’autres stratégies susceptibles d’affecter la sécurité de la couche de calcul.
Recommandations d’Azure Advisor
Azure Advisor est un consultant cloud personnalisé qui vous aide à suivre les meilleures pratiques pour optimiser vos déploiements Azure. Voici quelques recommandations qui peuvent vous aider à améliorer la fiabilité, la sécurité, l’efficacité des coûts, les performances et l’excellence opérationnelle d’AKS.
Contenu connexe
Considérez les articles suivants comme des ressources qui illustrent les recommandations mises en évidence dans cet article.
- Architecture de la base de référence AKS
- Architecture de microservices avancée sur AKS
- Cluster AKS pour une charge de travail PCI-DSS
- Base de référence AKS pour les clusters multirégions
- Accélérateur de zone d’atterrissage AKS
Créez une expertise en matière d’implémentation à l’aide de la documentation produit suivante :