web-dev-qa-db-fra.com

Minikube vs Kubernetes dans Docker pour Windows

La plupart des tutoriels que j'ai vus pour développer avec Kubernetes utilisent localement Minikube. Dans la dernière version Edge de Docker pour Windows, vous pouvez également activer Kubernetes. J'essaie de comprendre les différences entre les deux et celles que je devrais utiliser.

  1. Minikube vous permet de choisir la version de Kubernetes que vous souhaitez. Docker pour Windows peut-il le faire? Je ne vois pas un moyen de le configurer.
  2. Minikube a des commandes CLI pour activer le tableau de bord, le segment de mémoire, l'entrée et d'autres addons. Je ne sais pas pourquoi parce que je me suis engagé à exécuter simplement kubectl apply -f http://....
  3. Avec Minikube, je peux faire un minikube ip Pour obtenir l'adresse IP du cluster d'entrée, comment puis-je le faire avec Docker pour Windows?
  4. Y a-t-il autre chose qui devrait me préoccuper?.
20

J'ai l'impression que vous comprenez en grande partie l'espace et que vous avez déjà la plupart du temps des réponses à vos questions. Vous pourriez trouver Docker pour Mac contre Docker Toolbox une lecture informative, même s'il s'agit de l'équivalent Mac plutôt que de Windows et de Docker présenté sous la forme d'un VM plutôt que de Kubernetes Plus précisément.

  1. En fait, vous êtes coincé avec la version spécifique de Kubernetes publiée par la distribution de postes de travail Docker Edge.

  2. est répondu à la question.

  3. Je crois que les services de type NodePort sont publiés sur l'adresse IP de votre hôte. il n'y a pas d'adresse intermédiaire VM comme c'est le cas avec Docker Toolbox.

  4. Docker Toolbox et minikube utilisent toujours une machine virtuelle complète avec un hyperviseur standard. L'application de bureau Docker peut utiliser un moteur de virtualisation plus léger, le cas échéant.

  5. Kubernetes peut impliquer un travail de fond important. Si vous utilisez Kubernetes-in-Docker, il est difficile d’éteindre Kubernetes et de toujours avoir Docker à votre disposition. mais si vous avez un minikube distinct VM, vous pouvez simplement l'arrêter.

9
David Maze

Voici une partie de Docker documentation :

Kubernetes est uniquement disponible dans Docker pour Windows 18.02 CE Edge. La prise en charge de Kubernetes n’est pas incluse dans Docker pour Windows Stable CE 18.02. Pour en savoir plus sur les canaux Stable et Edge et sur la manière de basculer entre eux, voir Configuration générale.

Docker pour Windows 18.02 CE Edge comprend un serveur et un client Kubernetes autonomes, ainsi que l’intégration Docker CLI. Le serveur Kubernetes s'exécute localement dans votre instance Docker, il n'est pas configurable et constitue un cluster à un seul noeud.

Le serveur Kubernetes s'exécute dans un conteneur Docker sur votre système local et sert uniquement à des tests locaux. Lorsque la prise en charge de Kubernetes est activée, vous pouvez déployer vos charges de travail en parallèle sur Kubernetes, Swarm et en tant que conteneurs autonomes. L'activation ou la désactivation du serveur Kubernetes n'affecte pas vos autres charges de travail.

Voir Docker pour Windows> Mise en route pour activer Kubernetes et commencer à tester le déploiement de vos charges de travail sur Kubernetes.

Si vous avez assez de ressources CPU et RAM, vous pouvez facilement avoir les deux, minikube et docker-for-desktop sur le même ordinateur et basculez entre eux en sélectionnant le contexte, par exemple:

> kubectl config get-contexts
> kubectl config use-context docker-for-desktop

Il n'y a pas de place pour le moment pour choisir la version de Kubernetes pour docker-for-desktop . Il est présélectionné dans le package de distribution Docker.

Malheureusement, la version de docker à l'intérieur du minikube est un pas en arrière par rapport à celle disponible sur le site Web de docker, et certaines fonctionnalités pourraient être manquantes , mais si vous êtes intéressé par l'environnement Kubernetes, cela n'a pas vraiment d'importance la plupart des cas.

Certaines des fonctionnalités de Kubernetes reposent sur des ressources externes et pourraient ne pas être disponibles pour vous en cas d'installation locale. Par exemple, vous devez avoir la possibilité de créer Cloud Load Balancer pour utiliser certains types d’objets Ingress ou Service.

Mais d’autres ressources peuvent être facilement démarrées à l’intérieur de minikube ou de docker-for-desktop en utilisant kubectl create/apply.

Pour exposer vos ressources de cluster de manière externe, vous pouvez utiliser contrôleur Webhook Relay Ingress .
Voici un lien au manuel d'installation.

5
VAS