Avoir une belle boucle de rétroaction sur le développement local est un sujet de développement rapide dans l'écosystème Kubernetes.
Pour briser cette question, il y a quelques outils qui, à mon avis, soutiennent bien cet objectif.
Docker pour Mac Kubernetes
Docker pour Mac Kubernetes ( Docker Desktop est le nom générique de plusieurs plates-formes) offre une excellente option pour le développement local. Pour la virtualisation, il utilise HyperKit qui est construit sur le framework Hypervisor natif dans macOS au lieu de VirtualBox.
La fonctionnalité Kubernetes a été publiée pour la première fois en version bêta sur le canal de périphérie en janvier 2018 et a parcouru un long chemin depuis, devenant un Kubernetes certifié en avril 2018 et passant au canal stable en juillet 2018 .
D'après mon expérience, il est beaucoup plus facile de travailler avec que Minikube, en particulier sur macOS, et en particulier lorsqu'il s'agit de problèmes tels que RBAC, Helm, hyperviseur, registre privé, etc.
Barre
En ce qui concerne la distribution de votre code et l'extraction des mises à jour localement, Helm est l'une des options les plus populaires. Vous pouvez publier vos applications via CI / CD sous forme de graphiques Helm (ainsi que les images Docker sous-jacentes auxquelles elles font référence). Ensuite, vous pouvez extraire ces graphiques de votre registre de graphiques Helm localement et les mettre à niveau sur votre cluster local.
Brouillon Azure
Vous pouvez également utiliser un outil tel qu'Azure Draft pour effectuer des déploiements locaux simples et générer des graphiques Helm de base à partir de modèles de langage courants, un peu comme des buildpacks, pour automatiser cette pièce du puzzle.
Skaffold
Skaffold est comme Azure Draft mais plus mature, beaucoup plus large et fabriqué par Google. Il a une architecture très enfichable. Je pense qu'à l'avenir, plus de personnes l'utiliseront pour le développement d'applications locales pour Kubernetes.
Si vous avez utilisé React, je pense à Skaffold comme " Create React App for Kubernetes".
Kompose ou Compose sur Kubernetes
Docker Compose , bien que non lié à Kubernetes, est une alternative que certaines entreprises utilisent pour fournir un environnement de développement local simple, facile et portable, analogue à l'environnement Kubernetes qu'elles exécutent en production. Cependant, emprunter cette voie signifie diviser vos configurations de production et de développement local.
Kompose est un convertisseur Docker Compose vers Kubernetes. Cela pourrait être un chemin utile pour quelqu'un qui exécute déjà ses applications en tant que collections de conteneurs localement.
Compose on Kubernetes est une offre récemment ouverte (décembre 2018) de Docker qui permet de déployer des fichiers Docker Compose directement sur un cluster Kubernetes via un contrôleur personnalisé.