En plongeant dans Docker, Google Cloud et Kubernetes, et sans bien les comprendre tous les trois, il me semble que ces produits se chevauchent, mais ils ne sont pas compatibles.
Par exemple, un docker-compose.yml
fichier doit être réécrit pour qu'une application puisse être déployée sur Kubernetes.
Quelqu'un pourrait-il fournir une description approximative de haut niveau de l'endroit où Docker, Docker Compose, Docker Cloud et Kubernetes se chevauchent et où l'un dépend de l'autre?
la source
En plus de la réponse de @ yamenk , j'aimerais ajouter ici quelques détails qui pourraient aider les gens dans leur cheminement vers la compréhension de Kubernetes.
Réponse courte:
docker-compose
: est un outil qui prend un fichier YAML qui décrit votre application multi-conteneurs et vous aide à créer , démarrer / arrêter , supprimer tous ces conteneurs sans avoir à taper plusieursdocker ...
commandes pour chaque conteneur.Kubernetes
: est une plateforme de gestion des charges de travail et des services conteneurisés , qui facilite à la fois la configuration déclarative et l'automatisation. ? Continuez à lire ...Docker Compose
Kubernetes
Beaucoup de gens soutiennent que Kubernetes est difficile à apprendre. C'est parce qu'il résout une série de problèmes et que les gens essaient de comprendre sans connaître toutes les conditions préalables. Cela complique les choses. Commencez à assembler les pièces du puzzle en lisant des concepts / termes tels que les suivants. Ce processus vous aidera à comprendre le type de problèmes que Kubernetes essaie de résoudre:
Et parce qu'il y a beaucoup de choses différentes autour des conteneurs et de leur gestion, gardez un œil sur le paysage Cloud Native:
Version interactive ici: landscape.cncf.io/
Mises à jour
la source
docker stack deploy --orchestrator=kubernetes
... docs.docker.com/engine/reference/commandline/stack_deploySi vous mettez en réseau des conteneurs avec le même hôte, choisissez Docker Composer .
Si vous mettez en réseau des conteneurs sur plusieurs hôtes, optez pour kubernetes .
la source
la première distinction est entre le moteur de conteneur et l'orchestrateur de conteneur.
docker
est un moteur de conteneur, il vous permet de créer et d'exécuter généralement pas plus d'un conteneur au maximum, localement sur votre PC à des fins de développement.docker-compose
est un utilitaire Docker pour exécuter plusieurs conteneurs et leur permettre de partager des volumes et la mise en réseau via les fonctionnalités du moteur Docker, s'exécute localement pour émuler la composition des services et à distance sur des clusters.Kubernetes est une plate-forme d'orchestration de conteneurs, elle s'occupe de l'exécution des conteneurs et de l'amélioration des fonctionnalités du moteur afin que les conteneurs puissent être composés et mis à l'échelle pour servir des applications complexes (sorte de PaaS, géré par vous ou fournisseur de cloud). La principale fonctionnalité de Kubernetes est de dissocier l'infrastructure de l'application à l'aide de conteneurs, et elle est également ouverte pour d'autres moteurs que Docker, par exemple, il peut exécuter des conteneurs avec rkt ou cri-o.
Docker cloud est également une offre PaaS qui vous permettra d'exécuter et d'orchestrer des conteneurs via l'
docker
API du moteur.Maintenant, selon vos besoins, le niveau de contrôle de l'infrastructure et le public cible, vous pouvez utiliser Kubernetes sur baremetal, ou Azure ACS ou Google GKE, etc.
J'espère que cela vous a aidé :) Cordialement
la source
Docker Compose n'est pas un outil prêt pour la production. Il fonctionne très bien pour les environnements PoC ou de développement, mais manque de nombreuses fonctionnalités qui sont plus ou moins des enjeux de table pour une utilisation sérieuse en production. Swarm est plus prêt pour la production, mais je n'investirais jamais dans Swarm dans un scénario entièrement nouveau. Kubernetes a remporté la bataille de l'orchestration, comme en témoigne son inclusion dans Docker Desktop et son offre par tous les principaux fournisseurs de cloud. Kubernetes est beaucoup plus performant et bénéficie d'un soutien beaucoup plus important de la communauté et des entreprises.
Je recommanderais de plonger dans certains des tutoriels Kubernetes disponibles à Pluralsight, Linux Academy, etc. et de faire tourner un cluster pour jouer avec dans la plate-forme cloud de votre choix (EKS, AKS, GKE, etc.). Si vous essayez de tourner sur du métal nu, jetez un œil à OpenShift, mais reconnaissez que vous perdez une partie de la magie de Kubernetes dans cette configuration.
la source
Docker Composer:
Dans un
docker-compose.yml
fichier, chaque entrée peut éventuellementdocker-compose
créer une image. chaque entrée peut représenter un seul conteneur que nous voulons construire et chaque entrée définit les exigences de réseau ou les ports.Kubernetes:
Kubernetes s'attend à ce que toutes les images soient déjà construites et il y a un fichier de configuration par objet que nous voulons créer et nous devons configurer manuellement tous les réseaux.
Nous nous assurons donc que notre image est hébergée sur Docker Hub, créez un fichier de configuration pour créer le conteneur et un fichier de configuration pour configurer la mise en réseau.
la source
Docker-Compose est un fichier de déploiement qui a prédéfini un ou plusieurs conteneurs avec son environnement tels que les volumes, la mise en réseau, une commande à exécuter, etc.
Kubernetes, d'autre part, est un système qui orchestre les conteneurs de docker et d'autres microservices et les rend évolutifs et fiables sur plusieurs nœuds
la source
Docker compose: les conteneurs docker peuvent être exécutés directement sans l'aide de n'importe quel fichier yaml. Mais avec l'aide de Docker, les propriétés du conteneur de l'outil de composition peuvent être définies dans un fichier appelé fichier docker-compose.yml. veuillez trouver l'exemple de fichier yml ci-dessous pour plus de détails.
le nom de l'image, le nombre de répliques, etc. peuvent être configurés via le fichier yml.
Kubernetes: Il s'agit d'une plate-forme de gestion de conteneurs exécutée sur Docker créée par Google. Docker Swam est une autre plateforme de gestion de conteneurs construite par Docker lui-même. Kubernetes fournit également une fonction pour enregistrer la configuration liée aux pods (correspond au conteneur dans le docker) dans un fichier yaml comme docker compose. exemple de fichier yaml
ici aussi des images, des ports à ouvrir et des pods pour héberger des mappages de ports, etc. peuvent être donnés. comme docker compose, kubectl apply -f est la commande pour exécuter ce fichier.
la source