pixel
Seite wählen

NETWAYS Blog

4 Dinge, die neu sind bei NWS Kubernetes

Getreu dem Motto: “you answered – we listened” hat unser NWS-Platform-Team diese Woche für unsere Kunden neue Optionen zum Erstellen von Managed Kubernetes Clustern eingeführt, die im folgenden kurz erläutert und vorgestellt werden:

 

1. Neue Kubernetes Versionen

Das neueste Kubernetes Major Release 1.21 ist jetzt – einen Monat nach dem offiziellem Release – auch für NWS Kunden einsatzbereit! Änderungen und Neuigkeiten findet man wie gewohnt im offiziellen Changelog.

Neben der aktuellen Version 1.21 gibt es weiterhin die Möglichkeit, Kubernetes Cluster in den Versionen 1.18, 1.19 und 1.20 zu erstellen. Die Version 1.18 ist  jedoch bereits “End of Life” und deswegen nicht mehr unbedingt zu empfehlen.

 

Kubernetes Cluster erstellen

2. Private Cluster

Beim Erstellen eines Clusters kann man ab sofort zwischen einem “Private” oder einem “Public” Cluster wählen. Damit wird die Erreichbarkeit der Kubernetes-API des Clusters gesteuert. Ein privater Cluster hat nur eine interne IP und keine weitere öffentliche Floating-IP und ist dementsprechend nur von innerhalb der Kundenumgebung (OpenStack- oder Kubernetes-Projekt) erreichbar oder via VPN.

 

3. Individuelle Subnetze

Ebenso kann beim Erstellen eines neuen Clusters das Subnetz – in dem die Nodes kommunizieren – frei gewählt werden. Das ist insbesondere dann hilfreich, wenn man einen privaten Kubernetes Cluster per VPN mit einem bestehenden Firmennetz verbindet!

 

4. Rotate CA

Das Rotieren der Kubernetes CA kann jetzt über die Web-Oberfläche angestoßen werden. Es wird eine neue Cluster CA erzeugt und entsprechend neue Schlüssel und Zertifikate für Service-Accounts und Kubernetes-Nodes verteilt. Die bestehende kubeconfig-Datei des Administrators muss dann durch eine neue ausgetauscht werden.

 

Kubernetes Tutorials

Wer sich nochmal eine genaue Anleitung, wie man schnell und einfach sein Managed Kubernetes bei NWS aufsetzt, durchlesen möchte, der findet diese und viele weitere Kubernetes Tutorials auf unserer Website. Gerne mal vorbeischauen!

Sebastian Saemann
Sebastian Saemann
Head of Managed Services

Sebastian kam von einem großen deutschen Hostingprovider zu NETWAYS, weil ihm dort zu langweilig war. Bei uns kann er sich nun besser verwirklichen, denn er leitet das Managed Services Team. Wenn er nicht gerade Cloud-Komponenten patched, versucht er mit seinem Motorrad einen neuen Rundenrekord aufzustellen.

How To NWS: Managed Kubernetes

This entry is part 5 of 7 in the series How To NWS

Nachdem sich im letzten Blog alles um OpenStack gedreht hat,  möchte ich heute die Gelegenheit nutzen, um  unser Managed Kubernetes Angebot vorzustellen.

Was ist Kubernetes überhaupt und wie lässt es sich einsetzen? Um diese Fragen zu beantworten, macht es Sinn zunächst kurz die Entwicklung der Ressourcennutzung auf einem Betriebssystem aufzuzeigen.

Entwicklung der Ressourcennutzung:

Früher gab es keine Möglichkeit auf einem physischen Server Ressourcengrenzen für eine Anwendung zu setzen. Beanspruchte eine App viele Ressourcen, blieb für die anderen entsprechend wenig zur Verfügung. Dieses Problem wurde durch die Virtualisierung gelöst. Nun konnte die CPU von einem physikalischen Server auf mehrere Virtuelle Maschinen aufgeteilt werden. Jede VM bekommt hierbei feste Ressourcengrenzen zugeteilt und somit können mehrere Apps nebeneinander auf einem Server laufen, ohne sich gegenseitig die notwendigen Ressourcen streitig zu machen. Durch die Virtualisierung war nun auch die Möglichkeit der Skalierbarkeit gegeben. Bei Bedarf lassen sich die Ressourcen einer VM leicht erhöhen und später genauso wieder herunterdrehen.  So lässt sich ein physischer Server wesentlich kosteneffizienter betreiben.

Jede VM bringt allerdings immer ihr eigenes, installiertes Betriebssystem mit. Abhängig von der Zahl der eingesetzten VMs auf einem Server werden so entsprechend viele Ressourcen mit dem Betriebssystemunterbau belegt. Mit der Containervirtualisierung konnte man diesen Umstand umgehen. In Containern werden zwar auch Anwendungen virtualisiert. Aber im Unterschied zu VMs besitzen Container kein eigenes Betriebssystem, sondern nutzen das des Hostsystems. Sie brauchen somit weniger Arbeitsspeicher, CPU- Leistung und Speicherplatz – sind also deutlich leichtgewichtiger. In einem Container wird die Anwendung mit all ihren Bibliotheken und Einstellungen in einem Installationspaket zusammengefasst und kann so leicht installiert und isoliert von anderen Anwendungen auf dem gleichen System betreiben werden. Diese Eigenschaft passt perfekt zu Anwendungen, die im Microservice-Architekturansatz entwickelt werden. Dabei wird die Anwendung in kleinere Einheiten (Microservices) aufgeteilt, die jeweils einen Teilaspekt der Anwendung bereitstellen. In einem Container verpackt, lässt sich ein fehlerhafter Microservice viel unkomplizierter austauschen, als bei einer Anwendung mit monolithischem Aufbau.

Kubernetes:

An dieser Stelle kommt nun Kubernetes ins Spiel. Denn irgendjemand muss bei den ganzen Microservices ja den Überblick und das Steuer in der Hand behalten. Das Kubernetes Projekt wurde 2014 von Google als OpenSource-Projekt veröffentlicht. Der Name kommt aus dem Griechischen und bedeutet so viel wie Steuermann/ Pilot.  In Kurzform wird es auch oft als „k8s“ bezeichnet.

Unser Managed Kubernetes Service kommt also typischerweise beim Hosting von Anwendungen zum Einsatz, die im Microservice-Architekturansatz entwickelt werden. Hier realisiert Kubernetes die Automatisierung der Bereitstellung, Skalierung und Verwaltung der containerisierten Anwendungen. Es orchestriert die Cluster virtueller Maschinen und plant wann Container auf diesen ausgeführt werden sollen. Kubernetes verteilt die Services automatisch so intelligent über dem gesamten Cluster, dass die vorhandenen Ressourcen optimal ausgenutzt werden. Es koordiniert also die Computer-, Netzwerk- und Speicherinfrastruktur im Namen der Benutzer-Workloads.

Für ein neues Kubernetes-Projekt musst du anfangs festlegen, ob Dein Cluster hochverfügbar sein soll und wie viele Knoten Du benötigst. Mittels kubectl gibst Du dann an, welche Container wie oft und auf wie vielen Worker Nodes gestartet werden sollen. Du definierst also lediglich das Ziel und der Rest geht automatisch. Die Controlplane startet selbstständig innerhalb von kürzester Zeit alle Container auf den entsprechenden Worker Nodes samt den dafür notwendigen Loadbalancern. In der Folge überwacht die Control Plane ständig, ob Ist- und Soll-Zustand auf den Nodes übereinstimmen. Fällt einer aus, wird automatisch ein neuer Worker Node mit dem entsprechendem Pod, in dem der Container liegt, hochgefahren. Genauso verhält es sich auch bei geupdateten Containern. Werden bei  der gehosteten Anwendung Bugs behoben oder neue Features hinzugefügt, wird diese in einem neuen Container bereitgestellt. Das erkennt Kubernetes und testet den neuen Container auf seine Funktionalität. Ist diese gegeben, werden automatisch alle alten Container durch die neuen ausgetauscht. So können Entwickler Kubernetes komplett in ihre Entwicklungs-, CI und Deployment-Umgebung integrieren und sich eine Menge manueller Handgriffe sparen. Weiterhin kann mittels Autoscaling sichergestellt werden, dass beim Erreichen einer bestimmten Lastgrenze weitere zusätzliche Instanzen hinzu- und nach der Unterschreitung wieder abgeschaltet werden. Kubernetes sorgt also für eine flexible Anpassbarkeit in Echtzeit. Das vereinbart eine stets stabile Performance mit einer möglichst effizienten Kostenstruktur.

Der Managed-Part:

Die größte Herausforderung bei Kubernetes liegt in der Komplexität des eigentlichen Erstellens, Betriebs und Instandhaltens des Kubernetes Clusters. Und hier kommt die gute Nachricht für Dich: diese Aufgaben liegen komplett bei uns. Wir sorgen im Hintergrund permanent für Updates, Backups und eine stabile zugrunde liegende Infrastruktur. Diese besteht auch hier aus unserer OpenStack Umgebung, mittels derer alle notwendigen VMs, Loadbalancer etc. gestartet werden. Unsere Kunden können also sämtliche Annehmlichkeiten von Kubernetes nutzen, ohne sich um den Aufbau des nötigen Fachwissens zum Betrieb eines K8s-Clusters kümmern zu müssen.

Du bist neugierig geworden?

Dann geht es hier zu unserer Kubernetes Seite: https://nws.netways.de/de/kubernetes/

Hier findest du unsere Preisliste: https://nws.netways.de/de/preise/

Und hier findest Du Tutorials und Webinare zu Kubernetes: https://nws.netways.de/de/ressourcen

Stefan Schneider
Stefan Schneider
Account Manager

Vor seiner Zeit bei NETWAYS hat Stefan als Projektmanager in einer Nürnberger Agentur dabei geholfen, Werbeprojekte auf die Straße zu bringen. Seit Juni 2017 ist er nun stolzes Mitglied der NETWAYS-Crew. Hier war er zuerst der Ansprechpartner für unserer Schulungen und kümmert sich aktuell um alle Anfragen rund um unser Hostingangebot. Die Freizeit vertreibt sich Stefan am liebsten mit Sport. Vom Joggen über Slacklining bis zum PennyBoard fahren ist er für alles zu haben.

Kubernetes: Mehrere Cluster mit kubectl

Während man mit Kubernetes arbeitet oder entwickelt, wird man in den seltensten Fällen alles auf einem Cluster machen. Ob man ein lokales Minikube verwendet, oder Zugriff auf verschiedene Cluster für Produktion und Testing hat, muss man die Daten ja verwalten, und auswählen in welchem Kontext man gerade arbeitet.

Struktur der Konfiguration

Die Konfiguration für kubectl und andere Kubernetes Clients findet man normalerweise in $HOME/.kube/config. Ich möchte hier ein paar Beispiele zeigen, wie man hier neue Cluster hinzufügen kann. Der Inhalt sieht im einfachsten Fall so aus. Hier sind die Daten bzw. Secrets abgekürzt.

apiVersion: v1
kind: Config
current-context: my-cluster
clusters:
- cluster:
    certificate-authority-data: DATA+OMITTED
    server: https://my-cluster:6443
  name: my-cluster
contexts:
- context:
    cluster: my-cluster
    user: admin
  name: my-cluster
users:
- name: admin
  user:
    client-certificate-data: REDACTED
    client-key-data: REDACTED

Hier sind nun folgende Bereiche wichtig:

  • clusters definiert die bekannten Cluster mit API Endpunkt (URL) und dem passenden CA Zertifikat
  • users definiert Zugangsdaten und Authentifizierungsmechanismen, meistens ein Client Zertifikat, Auth-Tokens oder SSO Daten
  • contexts verbindet Cluster und Authentifizierung, und erlaubt auch das setzen des Namespaces
  • current-context zeigt an welcher Context gerade benutzt wird

Die aktuell verwendete Konfiguration kann man sich bequem anzeigen lassen, und dabei werden dann auch die Detaildaten zensiert – wie oben.

kubectl config view

Andere Konfigurations Dateien

Viele Kubernetes Anbieter stellen direkt die fertige Konfigurationsdatei zur Verfügung, die speichert man entweder direkt unter $HOME/.kube/config oder spezifiziert diese explizit.

kubectl --kubeconfig /tmp/my-config config view

export KUBECONFIG=/tmp/my-config
kubectl config view

Dabei wird nun diese Datei alleine geladen und ist direkt benutzbar. KUBECONFIG gilt dann für alle weiteren Befehle in der Shell auch.

Verbinden der Konfiguration

Um mehrere Dateien zusammenzuführen kann man nun auch mehrere Dateien laden, und so zusammenführen.

cp ~/.kube/config ~/.kube/config.bak
KUBECONFIG=~/.kube/config.bak:/tmp/my-config kubectl config view --raw >~/.kube/config

Bitte unbedingt die Datei vor dem speichern prüfen, doppelte Namen können zu Fehlern führen und der Context wird dann neu gesetzt.

Für kleinere Korrekturen kann man dann auch problemlos die Datei nachträglich von Hand editieren.

Tools und Shell Erweiterungen

Ich nutze gerne die Tools kubectx und kubens um schnell zwischen verschiedenen Kontexten umschalten zu können, bzw. zu sehen mit was ich gerade arbeite. Dazu gibt es auch die praktische Auto-Vervollständigung für die Shell.

Welchen Kontext bzw. Namespace ich gerade nutze, zeigt mir außerdem mein Bash Prompt auch an. Hier am Beispiel von powerline-shell mit meinen Modifikationen.

Es existieren auch einfachere Möglichkeiten, wie die kube-ps1 von jonmosco auf GitHub.

Mehr Infos

Wir bereiten gerade unsere neue Kubernetes Quick Start Schulung vor um den Teilnehmern einen schnellen Einstieg in die Benutzung von Kubernetes zu bringen. Wenn du Interesse hast mehr mit uns in Kubernetes einzusteigen, schau doch mal nach den Terminen.

Das Headerbild stammt von Loik Marras via unsplash.

Markus Frosch
Markus Frosch
Principal Consultant

Markus arbeitet bei NETWAYS als Principal Consultant und unterstützt Kunden bei der Implementierung von Nagios, Icinga und anderen Open Source Systems Management Tools. Neben seiner beruflichen Tätigkeit ist Markus aktiver Mitarbeiter im Debian Projekt.

Neu: Kubernetes Quick Start Training

Du bist neu in der Welt von Containern und Kubernetes? Du willst wissen, welchen Nutzen und welche Vorteile Dir Kubernetes bietet? Dann bist Du hier genau richtig! Bei unserem neuen Kubernetes-Quick-Start Training lernst Du alles, was Du für den Einstieg in Container Orchestration wissen musst. Wir zeigen Dir wie Kubernetes Deinen Arbeitsalltag erleichtert!

 

Kubernetes – K8s – Was ist das?

Kubernetes bezeichnet ein Open Source System zur Automatisierung der Bereitstellung, Skalierung und Verwaltung Deiner Container-Anwendungen. Es gruppiert Container, aus denen sich eine Anwendung zusammensetzt, in logische Einheiten, um deren Verwaltung zu erleichtern.

 

Diese Inhalte erwarten Dich

In unserer Kubernetes Quick Start Schulung zeigen wir Dir anhand von Beispielen eine Reihe von Inhalten, sodass Du ein solides Grundwissen erwirbst.

  • Container Grundlagen anhand von Beispielen
  • Zugriff auf Kubernetes zur Verwaltung
  • Architektur von Kubernetes
  • Kubernetes API auslesen und benutzen
  • Container in Kubernetes betreiben
  • Persistente Daten mit Kubernetes speichern und benutzen
  • Zugriff auf Dienste von intern oder extern

 

Sind Vorkenntnisse notwendig?

Wenn Du bereits gute Erfahrungen mit Linux auf der Kommandozeile hast und weißt, wie Netzwerk, Dateisystem und Dienste auf Linux funktionieren, dann ist das eine super Voraussetzung für diese Kubernetes Schulung. Noch besser ist es, wenn Du Erfahrungen mit Servern und Anwendungen hast. Aber auch ein Grundverständnis für Container mit Docker oder vergleichbare Lösungen ermöglichen Dir einen leichten Einstieg.

 

Was macht unsere Trainings so besonders?

Praxisnah

Neben dem Durchführen von Schulungen arbeiten unsere Trainer auch an Software- und Kundenprojekten. Sie wissen, worauf es ankommt und teilen ihr Wissen gerne.

Individuell

Wir bieten unsere Schulungen nur in begrenzter Teilnehmerzahl an, sodass wir gemeinsam effizient arbeiten können und jeden Teilnehmer individuell betreuen.

Kommunikativ

Uns ist es wichtig, dass Kursteilnehmer sich auch untereinander austauschen und ihre Erfahrungen teilen können. Darum stellen wir Euch verschiedene Wege zur Verfügung, um einen Informationsaustausch online zu ermöglichen.

 

Wann finden die nächsten Kubernetes-Trainings statt?

  • 03.03.2021 | Online
  • 13.04.2021 | Online
  • 22.06.2021 | Online
  • 28.10.2021 | Nürnberg
  • 23.11.2021 | Nürnberg

 

Haben wir Dein Interesse geweckt, dann informiere Dich über unsere Preise und melde Dich gleich an!

Bist Du Anfänger, dann haben wir hier genauere Informationen zu Kubernetes.

Wenn Du Dich jedoch bereits mit Kubernetes auskennst, dann wirf doch mal einen Blick auf unsere Kubernetes-Tutorials.

Katja Kotschenreuther
Katja Kotschenreuther
Online Marketing Manager

Katja ist seit Oktober 2020 Mitglied im Marketing-Team von NETWAYS. Nach ihrem Studium in Passau vollzog sie ihren Berufseinstieg im Bereich der Suchmaschinenoptimierung und möchte sich nun neben SEO auch anderen Online Marketing-Kanälen widmen. Neben Basteln und Malen, treibt sie in ihrer Freizeit gerne Sport und spielt Klavier und Gitarre.

Monthly Snap May 2020

In the beginning of the month almost all NETWAYS’ers were working from home. By the end of the month more and more came to work in the office, which was newly equipped with face masks and disinfectant dispensers. What else was on our minds in May?

 

Kubernetes

Part two of the blog-series Kubernetes – so startest Du durch! is Achim’s So startest Du Dein Managed Kubernetes bei NWS, a thorough how-to for getting started with your cluster. Also read part three, in which your first steps with Kubernetes are described: Erste Schritte mit Kubernetes. In part four in the series Achim gave us further helpful tips. Read Kubernetes Nginx Ingress Controller – So gelingt Dein einfacher Start! Part five of the series is Sebastian’s blog Monitoring Kubernetes mit Prometheus, because whether we like it or not, monitoring is an important issue that should never be neglected.

 

CEOs point of view

Many of us order from Amazon automatically, without even considering other options. Bernd encourages us to rethink this behaviour for various reasons in Amazon ist nicht alternativlos.

 

Techie news

David started out with his blog Die Out of the Box Experience, in which he claims that some of the joy of unboxing your new pc or gaming console is lost in all the waiting and installing we have to go through to actually use the new item. What to do with preinstalled Python versions? Markus gave us an idea in: Virtual Environments in Python. Philipp talked about evaluating SNMP traps in Ein kleiner Exkurs zu SNMP. And Saeid tested the program Pretalx for us, an open source program for organizing events and conferences.

 

SHOPs corner

Nicole explained the advantages of one of Gude’s products GUDE Expert Net Control 2111-Serie: Schalten und Messen for medium-sized to large server-rooms and data-centers. What do you need for monitoring your data center this summer? Natalie suggests the HWg-Ares 12 in Der – vermutlich etwas andere – Sommer kommt! What’s new from AKCP? Nicole wrote NEU im Shop: AKCP LoRaWan Geräte für wireless Sensoren and explained how this technology works. In GUDE Expert Sensor Box 7213 und 7214-Serie im direkten Vergleich, Natalie compares two Gude Boxes, to help us decide which one meets our needs the best.

 

Upcoming Events

In Call for Papers: Become a Speaker at OSMC 2020, Julia invited all of us to become speakers at the Open Source Monitoring Conference in Nuremberg. Hand in your proposal and take part in the event of the year! Did you know that we now offer some of our trainings as online trainings? Julia gave us an overview of upcoming trainings in Alles neu macht der Mai: NETWAYS Trainings – Online und vor Ort. And Julia informed us that the agenda for the stackconf is set! Read about it in stackconf online: stream, chat, network

Julia also wrote about the importance of helpful apps while working from home. Suddenly „nice“ and „helpful“ apps became significant for our work, and we were so happy to have them and our MyEngineers! Read about it in Wie ich meine Open Source-Apps und MyEngineers zu schätzen gelernt habe.

 

OSDC Recap

In our blog series OSDC recap we present some of last years’ highlights. In 5 Steps to a DevOps Transformation by Dan Barker | OSDC 2019, Aleksander gave a summary of the talk and shared a link to its video. Did you miss Jan Martens’ talk? Alexander recapped it in Evolution of a Microservice-Infrastructure by Jan Martens | OSDC 2019 and he also shared a link to the video.

 

#lifeatnetways

Working from home is different for everyone. Our apprentice Nathaniel shared his experiences in Arbeiten und Leben im Homeoffice in Zeiten von Corona

 

Catharina Celikel
Catharina Celikel
Office Manager

Catharina unterstützt seit März 2016 unsere Abteilung Finance & Administration. Die gebürtige Norwegerin ist Fremdsprachenkorrespondentin für Englisch. Als Office Manager kümmert sie sich deshalb nicht nur um das Tagesgeschäft sondern übernimmt nebenbei zusätzlich einen Großteil der Übersetzungen. Privat ist der bekennende Bücherwurm am liebsten mit dem Fahrrad unterwegs.

Trainings

Web Services

Events