KubeSail et son cluster Kubernetes gratuit pour les développeurs



Au début de l'année, un nouveau service Web KubeSail a été créé, créé par deux passionnés américains de Kubernetes, qui devaient «rendre les avantages de Kubernetes plus accessibles à tous les développeurs». Pour y parvenir, ils ont proposé un cluster K8 sous la forme d'un service géré, au sein duquel existe un plan tarifaire gratuit.

Les auteurs de KubeSail, affirmant que Kubernetes est déjà devenu la norme pour la construction d'infrastructures, admettent un seuil d'entrée élevé, qui "soulève des doutes quant à savoir si les avantages de cette technologie couvriront les coûts de [formation et démarrage]". " Afin d'atténuer cet inconvénient, ils offrent un service facile à utiliser, dont la version gratuite devrait être "utile pour l'apprentissage de Kubernetes ou de projets de loisirs qui ne valent pas le coût de 140 USD / mois, comme dans [Amazon] EKS".

Les plans tarifaires actuels de KubeSail sont les suivants:



... et les prix avec des restrictions flexibles sur CPU / mémoire et stockage promettent bientôt.

Quoi de mieux que d'autres options?


C'est ce que les développeurs eux-mêmes (et pas seulement eux) disent , répondant aux questions des lecteurs de Reddit sur les différences entre leur offre et ce qui existe déjà.

Par rapport à l'exécution locale de Minikube:

«Plus d'un nœud maître, ce qui vous permet de travailler avec cette configuration hautement accessible. Vous devriez pouvoir supprimer un nœud et ne pas souffrir de fonctions défectueuses. Minikube, j'en suis sûr, un seul maître est possible avec beaucoup de travailleurs. »

«... vous pouvez également exécuter des installations de production dans le cluster et les rendre disponibles sur Internet. Ce n'est pas seulement cool pour l'apprentissage, mais c'est aussi un cluster K8 très haute disponibilité qui ne s'éteindra pas lorsque le capot de l'ordinateur portable est fermé. »

Par rapport à d'autres fournisseurs Kubernetes gérés (les exemples incluent GKE et Digital Ocean):

"DO est vraiment moins cher que AWS [dont la comparaison avec EKS est donnée ci-dessus] , mais je dois dire que nous prenons en charge les configurations HA à un taux gratuit (vous pouvez exécuter trois petits pods sur trois nœuds) et utiliser des machines très puissantes avec SSD rapide lecteurs et connexions réseau, je suis donc prêt à parier que le pod sur KubeSail sera plus rapide que l'instance de 2 gigaoctets dans DO! Bien que la concurrence avec DO soit vraiment difficile, nous allons donc nous concentrer sur la formation et l'interface utilisateur / les utilitaires. »

Plus que des K8 gérés


Bien que le service soit principalement destiné aux développeurs, il peut également être utile aux ingénieurs DevOps. En plus de l'interface Web simple elle-même (des détails à ce sujet suivront ci-dessous) , les auteurs promettent de publier des outils de développement pour Kubernetes et des didacticiels qui simplifieront le déploiement et l'exécution d'applications dans des clusters. La «première avalanche» ici était l' utilitaire deploy-to-kube , conçu pour déployer des applications Node.js dans Kubernetes avec une seule commande (et même sans avoir besoin de créer une configuration pour cela - toutes les données nécessaires sont demandées de manière interactive):

image

Mais revenons au cluster K8 réellement géré, ce que KubeSail nous offre.

Travailler avec KubeSail


L'interface web du service sert la finalité du projet: elle est très simple et vous permet de mettre le cluster à votre disposition en quelques clics.

Après vous être connecté via un compte GitHub, l'interface Web vous invite à vous mettre immédiatement au travail, c'est-à-dire déployer les premiers déploiements sur le cluster Kubernetes créé:



Nous allons choisir l'un des exemples prêts à l'emploi pour cela - QUOTE-OF-THE-MONTH . Il s'agit d'un service de devis JSON aléatoire. Le déploiement est rapide (<10 secondes):



Vérifions le résultat en nous référant à un point de terminaison accessible de l'extérieur:

 $ curl https://qotm-2d7ab6efca.kubesail.io/ { "hostname": "qotm-5d9f776595-6qfmv", "ok": true, "quote": "A small mercy is nothing at all?", "time": "2019-02-21T02:54:15Z", "version": "2.0" } 

Ça marche! Et voici l'interface des déploiements déjà téléchargés sur le cluster:



Comme vous pouvez le voir, vous pouvez voir des informations de base sur chacun d'eux: limites de ressources, ports kubectl logs , sortie de journal (données des kubectl logs ).

Si vous cliquez sur le lien COMPTE (dans le coin supérieur droit de l'interface), vous pouvez déployer un déploiement supplémentaire à partir d'exemples prêts à l'emploi (et il n'y en a plus que deux maintenant: le service de ~/.kube/config déjà mentionné et nginx) ou vous pouvez choisir une configuration prête à l'emploi ( ~/.kube/config ) pour l'opportunité travailler avec le cluster à travers le kubectl habituel:



Pour l'exhaustivité des expériences, nous allons utiliser cette configuration et déployer notre déploiement - par exemple, à partir de la documentation de Kubernetes :

 $ kubectl create -f https://k8s.io/examples/controllers/nginx-deployment.yaml deployment.apps/nginx-deployment created $ kubectl get deployments NAME READY UP-TO-DATE AVAILABLE AGE nginx 1/1 1 1 4h14m nginx-deployment 0/3 0 0 64s qotm 1/1 1 1 4h17m 

Il s'est avéré se développer, mais quelque chose s'est mal passé? L'interface KubeSail est heureuse de vous aider:



Voilà, tout est question de ressources limitées. Le problème disparaîtra si vous apportez le déploiement, par exemple, à ce formulaire (voir dernières lignes - bloc de resources ):

 apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment labels: app: nginx spec: replicas: 3 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx:1.7.9 ports: - containerPort: 80 resources: limits: cpu: "100m" memory: "20Mi" requests: cpu: "10m" memory: "10Mi" 

... cependant, le caractère artificiel d'une telle "correction" de ce problème se fera rapidement sentir:



Faites attention à "1/3" dans le coin supérieur droit - il symbolise le lancement d'une des répliques. Certes, après cela, les ressources ont à nouveau cessé d'être suffisantes ... Cependant, je laisserai de tels «jeux» en dehors du cadre de l'expérience: son essence se kubectl toujours à vérifier l'interaction avec le cluster via kubectl - et, comme nous le voyons, tout est vraiment en ordre.

Le statut actuel officiel de KubeSail est une version bêta, et les auteurs sont vraiment impatients de recevoir les commentaires de tous les utilisateurs de leur service: les développeurs et les ingénieurs DevOps.

Alternatives


Enfin, permettez-moi de vous rappeler qu'il existe d'autres services gratuits pour expérimenter avec Kubernetes et l'étudier en ligne. À propos de l'un d'entre eux - Jouez avec Kubernetes , en utilisant la technologie Docker-in-Docker (DIND) et en offrant une console dans un navigateur - nous avons déjà rédigé une critique .

En plus de lui, Katacoda a créé un terrain de jeu Kubernetes très similaire.

Et dans la documentation de Kubernetes, vous pouvez trouver de grandes listes à la fois pour les méthodes locales d' installation / d'utilisation de Kubernetes et pour les solutions hébergées , dont la variété dépasse aujourd'hui de loin les options familières d'Amazon, Azure, Digital Ocean et Google (à propos, KubeSail a également fait à cette liste) .

PS


Lisez aussi dans notre blog:

Source: https://habr.com/ru/post/fr441116/


All Articles