Kubernetes expliqué
Les applications modernes sont de plus en plus souvent conçues à l’aide de conteneurs, qui sont des microservices fournis avec leurs propres dépendances et configurations. Kubernetes (prononcez « Koo-ber-net-EES ») est un logiciel open source pour le déploiement et la gestion de ces conteneurs à grande échelle. C’est également le mot grec pour le timonier d’un navire ou pilote. Créez, livrez et mettez à l’échelle des applications conteneurisées plus rapidement avec Kubernetes, parfois dénommé « k8s » ou « k-eights ».
Fonctionnement de Kubernetes
À mesure que les applications s'étendent sur plusieurs conteneurs déployés sur plusieurs serveurs, leur utilisation se complexifie. Pour gérer cette complexité, Kubernetes propose une API open source qui contrôle la manière dont ces conteneurs sont exécutés.
Avec Kubernetes, orchestrez un cluster de machines virtuelles et planifiez l’exécution des conteneurs sur ces machines virtuelles en fonction de leurs ressources de calcul et des besoins de chaque conteneur. Les conteneurs sont regroupés en pods, unités d’opérations de base de Kubernetes, qui se mettent à l’échelle selon l’état souhaité.
Par ailleurs, Kubernetes gère automatiquement la détection des services, incorpore l’équilibrage de charge, suit l’allocation des ressources et se met à l’échelle en fonction de l’utilisation des ressources informatiques. Il vérifie par ailleurs l’intégrité des ressources individuelles et permet aux applications de se réparer automatiquement en redémarrant ou en répliquant automatiquement les conteneurs.
Pourquoi utiliser Kubernetes ?
Pour que les applications conteneurisées soient opérationnelles, cela peut être complexe, car elles impliquent souvent de nombreux conteneurs déployés sur différentes machines. Kubernetes fournit un moyen de planifier et de déployer ces conteneurs, ainsi que de les adapter à votre état souhaité et de gérer leurs cycles de vie. Utilisez Kubernetes pour implémenter vos applications conteneurisées de façon portable, scalable et extensible.
Favorisez la portabilité des charges de travail
Les applications de conteneur étant distinctes de leur infrastructure, elles deviennent portables lorsque vous les exécutez sur Kubernetes. Déplacez-les des machines locales vers la production dans des environnements nuage locaux, hybrides et multiples, tout en maintenant la cohérence entre les environnements.
Mettez à l’échelle facilement les conteneurs
Définissez des applications conteneurisées complexes et déployez-les sur un cluster de serveurs, voire plusieurs clusters, avec Kubernetes. À mesure que Kubernetes met à l’échelle les applications en fonction de l’état souhaité, il surveille et gère automatiquement l’intégrité du conteneur.
Créez des applications plus extensibles
Une grande communauté open source de développeurs et d’entreprises crée activement des extensions et des plug-ins qui ajoutent des fonctionnalités telles que la sécurité, la surveillance et la gestion à Kubernetes. De plus, le programme de conformité Kubernetes certifié requiert que chaque version de Kubernetes prenne en charge les API qui facilitent l’utilisation de ces offres de la communauté.
Commencer à utiliser Kubernetes
Découvrez comment commencer à déployer et gérer des applications conteneurisées.
Suivre le parcours d’apprentissage
Découvrir les compétences pratiques nécessaires pour être opérationnel avec Kubernetes.
Créez des solutions sur une plateforme Kubernetes complète
Bien que Kubernetes lui-même offre portabilité, scalabilité et extensibilité, l’ajout de fonctionnalités de contrôle de sécurité, d’opérations et de développement de bout en bout vous permet de déployer des mises à jour plus rapidement, sans compromettre la sécurité ni la fiabilité, et de gagner du temps sur la gestion de l’infrastructure. Lorsque vous adoptez Kubernetes, envisagez également d’implémenter les ressources suivantes :
-
Automatisation de l'infrastructure ou Kubernetes serverless pour éliminer les tâches de routine telles que l'approvisionnement, les mises à jour correctives et les mises à niveau.
-
Outils de développement d’applications conteneurisées et de workflows d’intégration et de déploiement continus (CI/CD).
-
Services de gestion de la sécurité, de la gouvernance, des identités et des accès.
Maîtrisez Kubernetes avec les meilleures pratiques DevOps
À mesure qu’une application Kubernetes croît (via l’ajout de conteneurs, d’environnements et d’équipes), la fréquence de publication peut augmenter et avec elle, la complexité de développement et de fonctionnement. L’utilisation des meilleures pratiques DevOps dans les environnements Kubernetes vous permet de passer rapidement à l’échelle avec une sécurité renforcée.
Fournissez du code plus rapidement avec CI/CD
Alors que les conteneurs offrent un format d'empaquetage des applications qui facilite la collaboration entre les équipes en charge du développement et des opérations, l'intégration et le déploiement continus peuvent considérablement accélérer le déplacement du code au conteneur, puis au cluster Kubernetes en automatisant ces tâches.
Gérer efficacement des ressources avec l'infrastructure en tant que code
L’infrastructure en tant que code favorise la cohérence et la visibilité des ressources informatiques entre les équipes, ce qui réduit le risque d’erreur humaine. Cette pratique est liée à la nature déclarative des applications Kubernetes optimisées par Helm. La combinaison de ces deux éléments permet de définir des applications, des ressources et des configurations de manière fiable, traçable et répétable.
Accélérer la boucle de rétroaction moyennant une surveillance constante
Réduisez le délai entre les bogues et les correctifs avec une vue complète des ressources, du cluster, de l’API Kubernetes, des conteneurs et du code, du contrôle d’intégrité des conteneurs AKS à la journalisation centralisée. Cette vue vous permet d’éviter les goulots d’étranglement liés aux ressources, de suivre les requêtes malveillantes et de préserver l’intégrité de vos applications Kubernetes.
Équilibrer vitesse et sécurité avec DevOps
Intégrez l’observabilité en temps réel à votre workflow DevOps sans compromis sur la rapidité. Appliquez automatiquement des vérifications de conformité et des reconfigurations pour sécuriser votre pipeline de build et de mise en production, ainsi que votre application Kubernetes.
Exemple de workflow DevOps avec Kubernetes
- Itérez, testez et déboguez rapidement différentes parties d’une application dans le même cluster Kubernetes.
- Fusionnez et vérifiez le code dans un référentiel GitHub pour une intégration continue. Puis, exécutez des builds et tests automatisés dans le cadre d'une livraison continue.
- Vérifiez la source et l'intégrité des images de conteneur. Les images sont mises en quarantaine jusqu'à leur analyse.
- Approvisionnez des clusters Kubernetes avec des outils tels que Terraform. Les charts Helm installés par Terraform définissent l'état souhaité des ressources et configurations d'application.
- Appliquez des stratégies pour gérer les déploiements sur le cluster Kubernetes.
- Le pipeline de mise en production exécute automatiquement une stratégie de déploiement prédéfinie avec chaque code.
- Ajoutez un audit de stratégie et une correction automatique au pipeline CI/CD. Par exemple, seul le pipeline de mise en production peut créer de nouveaux pods dans votre environnement Kubernetes.
- Activez la télémétrie des applications, le contrôle d'intégrité des conteneurs ainsi que l'analytique des journaux d'activité en temps réel.
- Utilisez des insights pour résoudre les problèmes et documentez des plans pour le sprint suivant.
Concevoir en utilisation la puissance de Kubernetes avec Azure
Automatisez les opérations d'approvisionnement, de mise à niveau, de surveillance et de mise à l'échelle grâce au service complètement managé Microsoft Azure Kubernetes Service (AKS). Obtenez Kubernetes serverless pour une expérience allant du développement à la production plus simple, doublée d'une sécurité et d'une gouvernance de classe Entreprise.
Inspirez-vous et innovez grâce à la communauté Kubernetes
Kubernetes a été créé et se développe grâce aux efforts combinés que déploient des milliers de personnes et des centaines d’organisations pour ce projet, notamment en offrant un support continu aux personnes qui l’utilisent. Puisez dans leurs contributions passionnées pour créer de formidables logiciels.
35 000
Contributeurs
180 000
Validations
Projet d’excellence
dans GitHub
Contributions de Microsoft à Kubernetes
L’ingéniosité de l’open source au service des grandes entreprises
Pour rendre Kubernetes plus facile à adopter pour les organisations et plus facile à utiliser pour les développeurs, Microsoft a triplé le nombre d’employés participant au projet open source en seulement trois ans. Troisième contributeur de l’entreprise, Microsoft s’efforce de rendre Kubernetes plus convivial et plus accessible aux organisations en apportant à la communauté Kubernetes les connaissances et les meilleures pratiques acquises tout au long de son expérience.
Questions fréquentes (FAQ) - Kubernetes
-
Suivez ce parcours organisé pour commencer l'apprentissage de Kubernetes.
-
Kubernetes se révèle particulièrement utile dans certains scénarios tels que la migration d'applications vers le nuage ou la simplification des défis liés au Machine Learning et à l'IA.
Les principaux cas d’utilisation sont les suivants :
Migrer des applications existantes vers le nuage
Simplifier le déploiement et la gestion des applications basées sur des microservices
-
Consultez meilleures pratiques et modèles architecturaux créés par les milliers de professionnels techniques et de partenaires qui utilisent Kubernetes.
-
Un déploiement Kubernetes vous permet de décrire l'état de déploiement de l'application souhaité. Le planificateur Kubernetes s'assure que l'état actuel correspond à l'état souhaité, et maintient cet état en cas d'incident portant sur un ou plusieurs pods. Les déploiements Kubernetes vous permettent également de mettre à niveau vos applications de manière cohérente et sans temps d’arrêt.
-
Un déploiement sur Kubernetes à l'aide de DevOps implique généralement un référentiel tel que Git à des fins de gestion des versions. Le référentiel sert de début à la ligne CI/CD. Selon l'approche utilisée, les modifications apportées au référentiel déclenchent des activités d'intégration, de conception, de livraison et de déploiement.
-
Kubernetes et Docker fonctionnent ensemble.
Docker propose une norme ouverte à des fins d'empaquetage et de distribution des applications conteneurisées. À l'aide de Docker, vous pouvez créer et exécuter des conteneurs, ainsi que stocker et partager des images de conteneur.
Kubernetes orchestre et gère les applications distribuées et conteneurisées créées par Docker. Il offre également l'infrastructure requise pour déployer et exécuter ces applications sur un cluster de machines.
Ressources
En savoir plus sur Kubernetes
En savoir plus sur AKS
Explorer Azure Kubernetes Service (AKS)
Regardez vidéos AKS et à la demande webinaires Azure pour des démonstrations, des fonctionnalités principales et des sessions techniques.
Voir les modèles de démarrage rapide Azure pour Kubernetes
Voir la disponibilité régionale AKS
Rejoignez d’autres utilisateurs AKS sur GitHub, à KubeConou à une réunion Kubernetes près de chez vous.
Suivre des didacticiels pas à pas AKS :
Créer des images de conteneur à partir d’une application
Télécharger des images de conteneur dans Azure Container Registry
Exécuter des images de conteneur dans Kubernetes
Mettre à l’échelle une application et l’infrastructure Kubernetes
Mettre à jour une application en cours d’exécution dans Kubernetes