web-dev-qa-db-fra.com

Est-il judicieux d'exécuter Kubernetes sur un seul serveur?

J'utilise Docker J'ai mis en place un système pour déployer des environnements (sur un seul serveur) basé sur des branches Git en utilisant Traefik (* .dev.domain.com) et des modèles Docker Compose.

J'aime Kubernetes et je n'y suis jamais allé car je suis limité à un seul serveur pour mon infrastructure. Je ne l'ai utilisé qu'en utilisant des installations locales (Docker pour Windows).

Donc, ma question est: est-il judicieux d'exécuter un "cluster" Kubernetes (maître et nœuds) sur un seul serveur pour orchestrer et router les conteneurs (à la place de Traefik/Rancher/Docker Compose)?

Cette utilisation est pour le développement et la mise en scène uniquement pour le moment, donc la haute disponibilité n'est pas une condition préalable.

Merci.

9
Florian Lopes

S'il ne s'agit pas d'un environnement de production, peu importe le nombre de nœuds que vous utilisez. Alors oui, ça devrait aller dans ce cas. Mais assurez-vous que toutes les fonctionnalités de k8 dont vous aurez besoin dans production sont disponibles dans test/dev, pour garder les choses similaires et portables.

1
Ijaz Ahmad Khan

AFAIU,

Je ne vois pas d'exigence pour kubernetes à moins que nous ne le fassions ci-dessous au moins pour un seul hôte utilisant _ docker run ou docker-compose ou docker engine swarm mode -

  • Assurez-vous qu'il y a suffisamment de répliques (> = 2) de votre application sur un seul serveur et que vous équilibrez la charge entre ces conteneurs de docker d'applications.
  • Si vous voulez aller un peu plus loin, nous devrions être capables de monter et descendre de manière dynamique (le mode swarm docker prend en charge cela hors de la boîte, sinon utilisez jwilder nginx proxy).
  • Votre déploiement ne doit pas provoquer d'interruption. Assurez-vous qu'un seul conteneur est toujours sain à tout moment pendant le déploiement.
  • Le conteneur doit guérir automatiquement (redémarrer automatiquement) en cas d'échec de votre contrôle de santé HTTP ou TCP.
  • Faire tout ce qui précède vous placera certainement dans un meilleur endroit, mais l'hôte unique est toujours une source unique d'échec que vous devez gérer à intervalles réguliers.
  • Préféré : si possible, essayez de commencer par docker engine swarm mode ou kubernetes single master ou minikube. Cela prendra automatiquement en charge tous les scénarios ci-dessus et vous permettra également de passer à l'échelle à tout moment en ajoutant plus de nœuds sans changer beaucoup dans vos fichiers YML pour docker swarm ou kubernetes.

Réf -
https://kubernetes.io/docs/setup/independent/create-cluster-kubeadm/https://docs.docker.com/engine/swarm/

2
vivekyad4v

Si vous cherchez à l'essayer, vos options les plus simples sont probablement le minikube (facile à exécuter en cluster à nœud unique localement mais sans certaines fonctionnalités) ou l'utilisation de l'un des comptes d'essai gratuits pour un service Kubernetes géré par l'un des grands fournisseurs de cloud ( complet et multi-nœuds mais utilisation limitée avant de payer).

0
Ryan Dawson