‫D'accord. Ces deux dernières conférences, vous avez
‫commencé à voir toutes les différentes zones de Kubernetes en pleine
‫expansion, n'est-ce pas? Si vous le
‫considérez comme ce petit globe central composé uniquement de fichiers
‫binaires et de l’infrastructure de
‫base de Kubernetes, les anneaux ne cessent de grossir,
‫non? Avec les
‫modèles Ingress et Operator et les définitions de ressources personnalisées.
‫Il ne fait que grossir.
‫Maintenant, je veux vous parler de la façon dont
‫cela devient encore plus grand. En fait, c’est probablement le seul domaine où
‫c’est un peu fou.
‫C'est dans le domaine des opinions sur la
‫manière de déployer le YAML pour ces ressources, n'est-ce pas?
‫Jusqu'à présent, vous avez vu le kubectl s'appliquer.
‫Eh bien, cela va vous aider à démarrer et à
‫votre premier déploiement d'un orchestrateur de conteneurs, n'est-ce
‫pas? Tu vas ... que
‫vous utilisiez Swarm ou Kubernetes, vous obtiendrez ce
‫YAML, vous obtiendrez un dépôt et vous le stockerez, ce
‫qui est logique.
‫Une fois que vous avez commencé à développer cela et que
‫vous avez des équipes,
‫des autorisations et différents types d'autorisations, ainsi que
‫des personnes devant gouverner ou approuver des tâches, tout devient plus compliqué.
‫Que se passe-t-il dans ce monde de déploiement
‫de vos applications sur Kubernetes,
‫et c’est essentiellement ce dont il s’agit. Nous allons parler du fait qu'il
‫y en a maintenant plus de 60, eh bien, il y en a environ
‫80, mais bon nombre d'entre eux ne sont plus de vrais projets ou
‫ils sont morts ou archivés.
‫Mais il existe au
‫moins 60 façons d’ajouter des outils sur
‫Kubernetes simplement pour déployer vos applications sur Kubernetes.
‫Il y a beaucoup d'opinions, d'accord.
‫C’est là que commencent à émettre les opinions sur la
‫manière dont vous devriez procéder. Tout de Jenkins X à Helm
‫et au-delà. Kubernetes n'est
‫pas une infrastructure d'opinion. Nous avons
‫donc besoin d'avis pour guider les utilisateurs tout au long
‫du processus de déploiement et
‫de mise à jour de leurs applications.
‫Donc, tout le monde en a un. Si vous avez lu
‫quelque chose sur la façon de faire cela à
‫Kubernetes, vous avez probablement entendu parler de Helm. Helm to
‫Kubernetes est essentiellement Kubernetes. Helm est la manière de facto par
‫laquelle tout le monde
‫cherche à créer des modèles et à utiliser des normes
‫de modèles pour déployer des applications tierces ou créer
‫leurs propres graphiques Helm personnalisés.
‫C'est ce qu'ils appellent des tableaux.
‫C'est essentiellement un YAML basé sur un modèle, mais cela
‫permet à Helm de créer ou de
‫cracher le YAML qui ira ensuite dans votre cluster
‫Kubernetes pour vous. Mais ce n'est pas la seule opinion, non.
‫J'ai dit qu'il y avait plus de 60 ans au moins la dernière fois que je regardais.
‫Il y a en fait une feuille de Google que j'ai mise dans
‫les liens de référence. C'est un peu désuet, mais c'est la dernière
‫liste connue de tous les endroits où vous pourriez
‫trouver ces différentes façons de déployer. Les dockers eux-mêmes ont leur propre opinion,
‫ce qui est très intéressant, surtout si vous souhaitez être étroitement
‫lié à l'écosystème Docker. C'est
‫Compose on Kubernetes.
‫Si vous avez Docker Desktop, vous pouvez
‫aujourd'hui activer Kubernetes, ce que vous avez probablement déjà fait
‫pour cette partie du cours. Vous pouvez utiliser docker stack
‫deploy et au lieu d'aller à Swarm, vous pouvez
‫l'envoyer à Kubernetes.
‫Si vous examinez la commande docker stack deploy
‫et son aide, vous constaterez qu’il existe une
‫option permettant de spécifier l’orchestrateur que
‫vous souhaitez utiliser. En fait, dans les
‫paramètres de Docker Desktop, vous pouvez indiquer à Kubernetes de préférer ou par défaut
‫à Kubernetes pour les commandes de déploiement de pile.
‫C'est assez intéressant parce que je pensais que Compose YAML était
‫différent de Kubernetes YAML.
‫Eh bien, c'est ce que Compose on Kubernetes fait maintenant.
‫C'est essentiellement un outil tiers.
‫C'est une façon avisée, de Docker, de déployer, d'interpréter
‫ou de traduire techniquement le YAML de Compose,
‫le format Compose, vers le format
‫YAML de Kubernetes.
‫J'ai donc mis un lien ici pour
‫que vous puissiez vérifier si vous envisagez d'utiliser Docker
‫Enterprise comme votre outil d'entreprise pour Kubernetes et Swarm
‫et Docker en général.
‫Ensuite, vous devriez certainement vérifier cela, car cela sort des
‫sentiers battus. L'un des avantages de
‫cette fonctionnalité est que le flux de travail
‫reste extrêmement simple. Fondamentalement, vous utilisez
‫votre Compose YAML sur l’ensemble du pipeline et vous pouvez l’utiliser
‫dans Ops et Dev. Cela ne vous oblige
‫pas à dire: OK pour les développeurs, vous devez avoir YAML
‫pour Compose et pour la production et les serveurs, vous devez avoir ce
‫Kubernetes YAML, et ils ne sont pas compatibles, non.
‫L'idée avec Docker était qu'ils pensaient que c'était
‫trop compliqué. Simplifions cela.
‫Utilisons simplement une norme YAML pour l’ensemble du pipeline
‫de contrôle.
‫Et j'aime ça. Le problème, c'est que
‫Kubernetes ne supporte pas tout ce qui est
‫sous le soleil, n'est-ce pas? De toute évidence, nous
‫avons une seule page dans Docker Docs pour répertorier toutes
‫les fonctionnalités d’un fichier Compose. Mais le Kubernetes
‫YAML est si complexe que nous devons explorer
‫plusieurs commandes, références d'API, etc.
‫Si clairement, il ne peut pas tout faire.
‫La bonne chose est sur le site Web
‫Compose for Kubernetes, ils parlent dans GitHub des différentes
‫fonctionnalités qu’il supporte.
‫C'est la règle des 80/20 ici.
‫En d’autres termes, il prend en charge les 20%
‫de fonctionnalités de Kubernetes dont 80% d’entre nous ont probablement besoin.
‫Ainsi, vous pouvez commencer avec cela et voir si ce flux
‫de travail fonctionnerait pour vous. Une autre bonne chose
‫est la fin 2018, ils ont ouvert le code source
‫de Compose sur Kubernetes afin que vous puissiez maintenant le déployer sur
‫n'importe quelle infrastructure Kubernetes que vous avez, et cela fonctionne
‫simplement comme une sorte d'interprète. Il traduit chaque fois
‫que vous utilisez le fichier Compose de Docker et, à
‫l'aide de ses commandes, connecte votre cluster Kubernetes à
‫votre place, le traduit automatiquement en Kubernetes YAML
‫et c'est parti. À ce
‫stade, vous pouvez réellement ignorer une grande partie du Kubernetes
‫YAML pour vos applications. Vous savez, vous utilisez
‫peut-être Kubernetes YAML pour des tâches d'infrastructure que vous ne
‫déployez pas tous les jours. Cependant, pour que vos
‫développeurs puissent plus facilement écrire Compose YAML et pour que
‫les choses passent en production plus rapidement, vous choisissez d’utiliser Compose
‫sur Kubernetes comme flux de travail.
‫Ensuite, vous utiliserez peut-être des diagrammes de
‫Helm, qui sont en quelque sorte une norme concurrente pour
‫votre infrastructure majeure. Helm a été
‫conçu avec beaucoup de modèles de diagrammes pour
‫vous permettre de déployer la journalisation Prometheus
‫ou Elasticsearch avec ELK, ou quelque chose du genre.
‫Il viendra avec ces modèles prêts à l'emploi qui
‫vous permettront de commencer plus rapidement.
‫En outre, rappelez-vous que ce sont tous facultatifs, à droite.
‫Vous pouvez créer Kubernetes avec le YAML standard avec lequel
‫vous avez joué jusqu'à présent, et c'est bien.
‫Il ne nécessite pas ces autres choses.
‫Ce ne sont que des outils tiers optionnels.
‫Traditionnellement, au fur et à mesure que l'équipe
‫grandit, lorsque vous obtenez plusieurs clusters Kubernetes de
‫production et que plusieurs équipes sont impliquées, tout
‫devient plus difficile et vous obtiendrez probablement
‫plus d'une solution. Vous pourriez vous retrouver avec Helm sur certaines grappes.
‫Vous pourriez vous retrouver avec Compose on Kubernetes pour vos développeurs,
‫ou quelque chose comme ça.
‫Ou encore, l'un de ces 60 autres outils
‫de l'écosystème.
‫Le dernier point est que puisque Helm est actuellement le
‫leader dans ce domaine, presque
‫toutes les distributions l’utilisent, le prennent en charge, voire
‫le proposent immédiatement. Considérez simplement que
‫lorsque vous regardez ces outils, vous ne pourrez probablement pas
‫éviter Helm dans un environnement étendu.
‫Vous allez juste devoir l'utiliser.
‫La bonne chose est de nos jours c'est que c'est sur 3. 0 et qu'il existe
‫des options de déploiement beaucoup plus simples dans
‫le 3. 0 contre le 1. 0 et
‫2. 0 Ainsi, les choses s'améliorent et
‫deviennent plus faciles avec cela tout le temps. Un grand nombre de ces
‫outils de déploiement vous aident simplement à modéliser votre YAML de
‫différentes manières. Kubernetes elle-même
‫n'a rien eu le plus longtemps possible.
‫Dans les versions récentes, il est maintenant sorti quelque
‫chose appelé Kustomize avec un K.
‫Lorsque vous commencez à voir ce mot avec un K, vous savez
‫que c'est une caractéristique spéciale.
‫Cela vous permet de faire des choses similaires à Helm et
‫à ces autres solutions de déploiement, mais ce n'est
‫pas vraiment aussi puissant que
‫Helm, n'est-ce pas.
‫Helm est toujours le leader.
‫Kustomize est en quelque sorte le petit nouveau sur le marché, mais il sort de
‫l'ordinaire avec tout ce que vous faites dans Kubernetes.
‫La commande kubectl le prend en charge.
‫Vraiment, c’est qu’il prend juste, au lieu
‫d’un YAML basé sur un modèle, c’est juste un YAML que vous
‫avez déjà qui est au standard Kubernetes YAML, et vous pouvez
‫ensuite prendre ce fichier et ensuite exécuter quelque chose
‫dessus et le changer avec une substitution de toutes sortes.
‫Un peu comme nous le faisons à Swarm.
‫Nous avons en fait dans Swarm et Compose, nous avons des fichiers
‫de remplacement et des choses comme ça.
‫Ils ont maintenant ce construit hors de la boîte.
‫Il comporte de nombreuses fonctionnalités.
‫Je pense que dans plus ou moins, ce n'est pas tout à fait là en ce qui
‫concerne l'ensemble des fonctionnalités de ce que Helm a, mais au moins, il
‫est tout à fait original.
‫Rappelez-vous, si vous avez Docker, la
‫dernière version, 19. 03 ou une version plus
‫récente de Docker, contient maintenant la sous-commande docker app, qui
‫crée son propre modèle pour Compose YAML
‫et est vraiment très comparable à cette option personnalisée
‫pour Kubernetes. Encore une fois,
‫si vous vous en tenez à la piste Docker
‫et si vous envisagez Docker Enterprise ou si vous aimez vraiment la façon dont
‫Docker se concentre sur le flux de travail du
‫développeur, examinez la sous-commande docker app et le référentiel d'application docker, qui Je
‫vais mettre dans les ressources ici.
‫Parce qu'ils disposent d'une documentation sur la façon
‫de prendre Compose YAML, extrayez des éléments tels que les variables
‫d'environnement et d'autres éléments. Emballez le tout en
‫une seule image, puis envoyez votre YAML sous forme d'image.
‫Ce qui signifie que vous pouvez maintenant mettre à jour votre
‫YAML et le déployer avec une seule ligne sans avoir
‫à faire comme de descendre le YAML et de taper de longues commandes.
‫C'est une façon très intéressante de le faire.
‫Il utilise quelque chose de nouveau appelé la norme CNAB, dans
‫laquelle nous n'allons pas entrer ici, mais c'est
‫C N A B.
‫C'était une annonce faite par Docker et Microsoft
‫en 2018.
‫Vous pouvez vérifier tout cela sur le site Web de
‫l'application Docker dans les ressources. Encore une fois, tout cela
‫concerne des méthodes tierces facultatives pour personnaliser et étendre le YAML par
‫défaut afin de faciliter la tâche de votre équipe à mesure
‫que vous grandissez.