JavaRush /Blog Java /Random-FR /Qui sont Docker, Kubernetes, OpenShift et comment sont-il...
Павел
Niveau 11

Qui sont Docker, Kubernetes, OpenShift et comment sont-ils liés les uns aux autres ?

Publié dans le groupe Random-FR
Tout commence par l'emballage. Dans le développement industriel, il est nécessaire de « packager » l'application assemblée, par exemple, afin qu'elle puisse être transférée vers le serveur où elle fonctionnera, sous la forme dans laquelle le développeur l'a assemblée sur son ordinateur, un tel « packaging » devrait servir comme une sorte de protection. Cela élimine les surprises, par exemple lorsqu'une application fonctionne pendant un test, mais tombe en panne lors du transfert en production. De plus, le « packaging » isole une application d'une autre, située sur le même serveur, une telle isolation permet à une application de ne pas interférer avec le travail d'une autre (par exemple : une application ne pourra pas prendre le contrôle de toute la RAM du serveur, laissant le deuxième application à son sort). Les avantages du « packaging » avec une architecture de microservices sont particulièrement visibles, et cela est compréhensible : il existe de nombreux microservices - de nombreuses petites applications qui doivent communiquer entre elles, mais en même temps ne doivent pas interférer les unes avec les autres. Un exemple est une commode (serveur), dans laquelle il y a de nombreux tiroirs différents, et on peut facilement déplacer différentes chaussettes d'un tiroir à l'autre, et en même temps elles ne se mélangeront pas entre elles ou avec des culottes. Qui sont Docker, Kubernetes, OpenShift et comment sont-ils liés les uns aux autres ?  - 1 Le packaging est créé par des outils de virtualisation. Autrefois, les machines virtuelles (VM) étaient utilisées comme « packaging ». Les personnes âgées se souviendront de la façon dont elles ont déployé Windows XP sur Vista dans une machine virtuelle. Désormais, les VM pour le packaging d’applications appartiennent au passé. Les conteneurs ont conquis le monde. Parce qu'ils sont : plus légers, plus productifs et plus sûrs. Plus en détail : en quoi un conteneur est-il différent d'une machine virtuelle ? Qui sont Docker, Kubernetes, OpenShift et comment sont-ils liés les uns aux autres ?  - 2 Il faut garder à l'esprit certains avantages des conteneurs : • ils sont plus petits (ils occupent moins de mémoire sur le serveur) ; • avoir accès aux ressources partagées du serveur (RAM, temps de calcul du processeur) ; • avoir une meilleure portabilité vers d'autres environnements (du test à l'industriel) ; • fournir une vitesse de lancement plus élevée (le conteneur étant léger, il se lance plus rapidement). Docker est la mère des conteneurs. Quand ils parlent de conteneur, ils parlent de Docker. Docker est un logiciel permettant d'automatiser le déploiement et la gestion d'applications dans des environnements conteneurisés. À l'aide d'exemples, Docker est un croisement entre un concepteur en ligne et une imprimante 3D avec une grue. Autrement dit, il peut d'abord concevoir un modèle (image) pour un conteneur, imprimer (créer) le conteneur selon des conditions données (image), puis le déplacer là où cela est nécessaire. Les Dockerfiles sont utilisés à la place des leviers. Le processus de gestion est simple : vous écrivez des fichiers, des commandes, vous les exécutez et voyez ce qui se passe. Qui sont Docker, Kubernetes, OpenShift et comment sont-ils liés les uns aux autres ?  - 3 Première connaissance de Docker Docker Compose - Docker mis à niveau Examinons maintenant un scénario dans lequel plusieurs conteneurs doivent s'exécuter dans un emplacement. L'utilitaire utilisé pour cela est Docker Compose. Docker Compose est un outil inclus avec Docker. Il est conçu pour résoudre les problèmes liés au déploiement de projets. Différence entre Docker et Docker Compose : Docker est utilisé pour gérer des conteneurs individuels. Docker Compose est utilisé pour gérer plusieurs conteneurs simultanément. Cet outil offre les mêmes fonctionnalités que Docker, mais permet de travailler avec des structures plus complexes. Qui sont Docker, Kubernetes, OpenShift et comment sont-ils liés les uns aux autres ?  - 4 Scénario typique d'utilisation de Docker Compose : Imaginez que vous êtes développeur d'un projet Web. Ce projet comprend deux sites Web. Le premier permet aux entrepreneurs de créer des boutiques en ligne en quelques clics seulement. La seconde est destinée au support client. Ces deux sites interagissent avec la même base de données. Votre projet devient de plus en plus populaire, et il s'avère que la puissance du serveur sur lequel il s'exécute n'est plus suffisante. En conséquence, vous décidez de déplacer l’intégralité du projet vers une autre machine. Si vous n'avez pas utilisé quelque chose comme Docker Compose, vous devrez alors migrer et reconfigurer les conteneurs un par un, en espérant ne rien oublier dans le processus. Si vous utilisez Docker Compose, le déplacement de votre projet vers un nouveau serveur est un problème qui peut être résolu en exécutant quelques commandes. Afin de finaliser le transfert du projet vers un nouvel emplacement, il vous suffit de définir quelques paramètres et de télécharger une copie de sauvegarde de la base de données sur le nouveau serveur. DockerComposer typique : Qui sont Docker, Kubernetes, OpenShift et comment sont-ils liés les uns aux autres ?  - 5 ce que vous devez retenir ici : les conteneurs sont le principal moyen de « packaging » des applications. Docker gère les conteneurs, crée des images de conteneurs, récupère et déplace les conteneurs. Pour gérer simultanément un groupe de conteneurs, Docker Compose est utilisé, qui est inclus dans Docker. Ces programmes sont des logiciels gratuits (freebies - en un mot) Kubernetes (K8s) - Docker automation Et donc nous avons déployé des conteneurs, nous savons les transférer « par lots » de machine à machine. Mais soudain, un des conteneurs est tombé ! Ce qu'il faut faire? Qui va le relever à nouveau ? Qui sont Docker, Kubernetes, OpenShift et comment sont-ils liés les uns aux autres ?  - 6 Bien entendu, vous pouvez le faire manuellement, via Docker. Mais vous devez faire quelque chose, écrire quelque chose, vous avez besoin d'une sorte d'outil d'automatisation. C’est là qu’intervient Kubernetes (en abrégé K8s), il s’occupera également de la gestion et de l’orchestration (gestion automatisée des entités associées) des conteneurs. Avec les K8 à votre disposition, vous n’avez pas besoin de surveiller les conteneurs jour et nuit. Il suffit de définir le scénario de comportement, et les K8 feront tout eux-mêmes. Principales fonctionnalités de Kubernetes 1. Fournit l'évolutivité et la gestion de votre configuration. 2. Vous pouvez décrire ce que vous souhaitez obtenir lors du déploiement d'un cluster, et K8 le fera. Par exemple, spécifiez le nombre de pods, la quantité de mémoire à leur allouer, indiquez le nombre de répliques (instances) d'applications déployées (dans des conteneurs) sur les pods. 3. Responsable du maintien du système dans un certain état : si quelque chose tombe, les K8 le récupéreront, selon la configuration établie. Ce que vous devez retenir ici : Kubernetes est un outil permettant d'orchestrer des applications conteneurisées - en automatisant leur déploiement, leur mise à l'échelle et leur coordination dans un cluster. Prend en charge les principales technologies de conteneurisation, notamment Docker. K8s est un logiciel open source. Qui sont Docker, Kubernetes, OpenShift et comment sont-ils liés les uns aux autres ?  - 7 OpenShift est une Ferrari dans le monde de la virtualisation, cool, rapide et coûteuse. En développant le sujet, passons à OpenShift. OpenShift est un add-on à Kubernetes qui offre des fonctions supplémentaires, il est immédiatement prêt à l'emploi, il ne nécessite pas de configuration longue et pénible et peut être immédiatement mis en production. Regardez combien d'icônes différentes il y a au-dessus de Kubernetes. Et chacun d’eux fait ses propres choses sympas. Qui sont Docker, Kubernetes, OpenShift et comment sont-ils liés les uns aux autres ?  - 8 Points forts d'OpenShift : • C'est un produit payant, contrairement aux K8 ; • DevOps prêt à l'emploi, prise en charge des scénarios de déploiement de base bleu/vert et Canary ; • Prise en charge Jenkins intégrée ; • Fournit des outils pratiques pour administrer et travailler avec le cluster ; • Dispose d'un modèle de sécurité plus strict et d'une surveillance intégrée. Il convient de souligner une fois de plus qu'OpenShift est un produit payant, contrairement à Kubernetes. La différence est la suivante : si nous prenons Kubernetes nu, alors nous résolvons tous les problèmes nous-mêmes. Si nous parlons d'OpenShift, il s'agit d'un produit de Red Hat, qui résout les problèmes émergents dans le cadre d'un support payant. Résumons : dans le développement industriel, il est nécessaire de « packager » l'application ; cette approche est particulièrement pertinente dans l'architecture des microservices. Les conteneurs sont le principal moyen d’emballage des applications. Docker gère les conteneurs, crée des images de conteneurs, récupère et déplace les conteneurs. Pour gérer simultanément un groupe de conteneurs, Docker Compose est utilisé, qui est inclus dans Docker. Ces programmes sont des logiciels gratuits. Kubernetes (K8s) est un outil permettant d'orchestrer des applications conteneurisées - en automatisant leur déploiement, leur mise à l'échelle et leur coordination dans un cluster. Prend en charge les principales technologies de conteneurisation, notamment Docker. K8s est un logiciel open source. OpenShift est un module complémentaire à Kubernetes qui offre des fonctionnalités supplémentaires. Il s'agit d'un produit payant, contrairement aux K8, destiné à un usage professionnel. Fournit DevOps prêt à l'emploi : prise en charge des principaux scénarios de déploiement bleu/vert, canari, prend en charge Jenkins intégré et fournit des outils pratiques pour administrer et travailler avec le cluster. Possède un modèle de sécurité plus strict et une surveillance intégrée. Pour ceux qui ont envie de coder : Packager une application Spring Boot dans un conteneur Comment déployer Postgres dans Docker et se connecter à une application Spring-Boot Webinaire : Docker - Comment travailler avec des conteneurs ? — Développement back-end en Java
Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION