KubeSail und sein kostenloser Kubernetes-Cluster für Entwickler



Anfang des Jahres wurde ein neuer KubeSail-Webdienst erstellt, der von zwei amerikanischen Kubernetes-Enthusiasten erstellt wurde, um „die Vorteile von Kubernetes für alle Entwickler zugänglicher zu machen“. Um dies zu erreichen, schlugen sie einen K8-Cluster in Form eines verwalteten Dienstes vor, in dem es einen kostenlosen Tarifplan gibt.

Die Autoren von KubeSail, die behaupten, Kubernetes sei bereits zum Standard für die Gebäudeinfrastruktur geworden, geben eine hohe Eintrittsschwelle zu, die "Zweifel aufkommen lässt, ob die Vorteile dieser Technologie die Kosten für [Schulung und Start] decken". Um diesen Nachteil abzumildern, bieten sie einen benutzerfreundlichen Service an, dessen kostenlose Version „nützlich sein sollte, um Kubernetes oder Hobbyprojekte zu lernen, die die Kosten von 140 USD / Monat nicht wert sind, wie in [Amazon] EKS“.

Die aktuellen KubeSail-Tarifpläne lauten wie folgt:



... und Preise mit flexiblen Einschränkungen für CPU / Speicher und Speicher versprechen bald.

Was ist besser als andere Optionen?


Das sagen die Entwickler selbst (und nicht nur sie) und beantworten Fragen von Reddit-Lesern zu den Unterschieden zwischen ihrem Angebot und dem, was sie bereits haben.

Im Vergleich zum lokalen Ausführen von Minikube:

„Mehr als ein Masterknoten, mit dem Sie mit dieser leicht zugänglichen Konfiguration arbeiten können. Sie sollten in der Lage sein, einen Knoten zu löschen und nicht unter Funktionsstörungen zu leiden. Ich bin sicher, Minikube, mit vielen Arbeitern ist nur ein Meister möglich. “

„... Sie können auch Produktionsinstallationen im Cluster ausführen und im Internet verfügbar machen. Dies ist nicht nur cool zum Lernen, sondern auch für einen wirklich hochverfügbaren K8s-Cluster, der sich nicht ausschaltet, wenn die Laptop-Abdeckung geschlossen wird. “

Im Vergleich zu anderen verwalteten Kubernetes-Anbietern (Beispiele sind GKE und Digital Ocean):

„DO ist wirklich billiger als AWS [der Vergleich mit EKS ist oben angegeben] , aber ich muss sagen, dass wir HA-Konfigurationen kostenlos unterstützen (Sie können drei kleine Pods auf drei Knoten ausführen) und sehr leistungsstarke Maschinen mit schneller SSD verwenden. Laufwerke und Netzwerkverbindungen, daher bin ich bereit zu wetten, dass der Pod auf KubeSail schneller ist als die 2-Gigabyte-Instanz in DO! Obwohl der Wettbewerb mit DO sehr schwierig sein wird, werden wir uns auf Schulungen und Benutzeroberflächen / Dienstprogramme konzentrieren. “

Mehr als K8s geschafft


Obwohl sich der Service in erster Linie an Entwickler richtet, kann er auch für DevOps-Ingenieure nützlich sein. Zusätzlich zu der einfachen Weboberfläche selbst (Details dazu folgen weiter unten) versprechen die Autoren, Entwicklungstools für Kubernetes und Handbücher zu veröffentlichen, die die Bereitstellung und das Starten von Anwendungen in Clustern vereinfachen. Der „erste Schluck“ hier war das Dienstprogramm „Deploy-to-Kube“ , mit dem Node.js-Anwendungen in Kubernetes mit einem Befehl bereitgestellt werden können (und auch ohne dass hierfür eine Konfiguration erstellt werden muss - alle erforderlichen Daten werden interaktiv angefordert):

Bild

Aber zurück zum tatsächlich verwalteten K8s-Cluster, was KubeSail uns bietet.

Arbeiten Sie mit KubeSail


Die Weboberfläche des Dienstes dient dem Zweck des Projekts: Sie ist sehr einfach und ermöglicht es Ihnen, den Cluster mit nur wenigen Klicks zur Verfügung zu stellen.

Nachdem Sie sich über ein GitHub-Konto angemeldet haben, werden Sie über die Weboberfläche aufgefordert, sofort mit dem Geschäft zu beginnen, d. H. Führen Sie die ersten Bereitstellungen im erstellten Kubernetes-Cluster aus:



Wir werden eines der vorgefertigten Beispiele dafür QUOTE-OF-THE-MONTH - QUOTE-OF-THE-MONTH . Dies ist ein zufälliger JSON-Angebotsservice. Die Bereitstellung ist schnell (<10 Sekunden):



Lassen Sie uns das Ergebnis anhand eines extern zugänglichen Endpunkts überprüfen:

 $ 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" } 

Es funktioniert! Und hier ist die Schnittstelle zu Bereitstellungen, die bereits in den Cluster hochgeladen wurden:



Wie Sie sehen können, sehen Sie grundlegende Informationen zu jedem von ihnen: Ressourcenlimits, weitergeleitete Ports, Protokollausgabe (Daten aus kubectl logs ).

Wenn Sie auf den Link ACCOUNT (in der oberen rechten Ecke der Benutzeroberfläche) klicken, können Sie eine zusätzliche Bereitstellung aus vorgefertigten Beispielen bereitstellen (und es gibt jetzt nur zwei davon: den bereits erwähnten ~/.kube/config und nginx), oder Sie können eine vorgefertigte Konfiguration ( ~/.kube/config ) für die Opportunity ~/.kube/config arbeite mit dem cluster über das übliche kubectl :



Der Vollständigkeit halber werden wir diese Konfiguration verwenden und unsere Bereitstellung bereitstellen - zum Beispiel aus der Kubernetes-Dokumentation :

 $ 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 

Es stellte sich heraus, dass es expandierte, aber etwas ging schief? Die KubeSail-Oberfläche hilft Ihnen gerne weiter:



Hier ist es - es geht nur um begrenzte Ressourcen. Das Problem wird behoben, wenn Sie beispielsweise die Bereitstellung in dieses Formular bringen (siehe letzte Zeilen - 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" 

... aber die Künstlichkeit einer solchen "Korrektur" dieses Problems wird sich schnell bemerkbar machen:



Achten Sie auf "1/3" in der oberen rechten Ecke - es symbolisiert den Start einer der Repliken. Zwar waren die Ressourcen danach nicht mehr ausreichend ... Ich werde solche „Spiele“ jedoch außerhalb des Rahmens des Experiments kubectl : Ihre Essenz kubectl immer noch darauf hinaus, die Interaktion mit dem Cluster über kubectl zu überprüfen - und wie wir sehen, ist wirklich alles in Ordnung.

Der offizielle aktuelle Status von KubeSail ist eine Beta-Version, und die Autoren freuen sich sehr auf das Feedback aller Benutzer ihres Dienstes: sowohl der Entwickler als auch der DevOps-Ingenieure.

Alternativen


Abschließend möchte ich Sie daran erinnern, dass es weitere kostenlose Dienste gibt, mit denen Sie mit Kubernetes experimentieren und es online studieren können. Zu einem von ihnen - Spielen Sie mit Kubernetes , verwenden Sie die Docker-in-Docker-Technologie (DIND) und bieten Sie eine Konsole in einem Browser an - haben wir bereits eine Rezension geschrieben .

Zusätzlich zu ihm schuf Katacoda einen sehr ähnlichen Kubernetes-Spielplatz .

In der Kubernetes-Dokumentation finden Sie umfangreiche Listen sowohl für lokale Methoden zur Installation / Verwendung von Kubernetes als auch für gehostete Lösungen , deren Vielfalt heute die bekannten Optionen von Amazon, Azure, Digital Ocean und Google (übrigens auch von KubeSail) bei weitem übertrifft zu dieser Liste) .

PS


Lesen Sie auch in unserem Blog:

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


All Articles