GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Kubernetes-Grundlagen für Systemadministratoren

In diesem ersten einer zweiteiligen Serie befasst sich dieser Artikel mit Ähnlichkeiten und Unterschieden bei Containern, virtuellen Maschinen und den Vor- und Nachteilen jeder Technologie. Ich schaue mir auch Kubernetes (oft als K8s geschrieben) an und warum es entstanden ist.

Container

Stellen Sie sich Container einfach als Standardboxen mit Software vor, die als eigenständige Bereitstellungseinheit in jeder Infrastruktur verwendet werden können. Container werden mit Code und allen darin enthaltenen Abhängigkeiten gebündelt. Sie sind leichtgewichtig, eigenständig und enthalten alle Laufzeiten, Einstellungen und Systemtools, die zum Ausführen von Anwendungen erforderlich sind.

Virtuelle Maschinen

Virtuelle Maschinen (VMs) sind Sandbox-Programme (Gastmaschinen), die sich wie physische Maschinen verhalten und auf physischer Hardware und Betriebssystemen (Hostmaschinen) ausgeführt werden. Virtualisierung ist wie das Erstellen mehrerer Maschinen innerhalb einer Maschine. Die Software in der virtuellen Maschine stört das Host-Betriebssystem nicht. Dadurch eignen sich VMs ideal zum Testen von Betaanwendungen, zum Analysieren und Untersuchen von vireninfizierten Dateien und zum Erkunden anderer Software, die Sie nicht auf einem physischen System platzieren möchten. Hostsysteme für virtuelle Maschinen sind so konzipiert und ausgestattet, dass sie mehrere virtuelle Maschinen aufnehmen können – von wenigen bis zu mehreren Dutzend, je nach Technologie und Hardware.

[ Den Lesern gefiel auch:Automatisieren Sie die Bereitstellung virtueller Maschinen mit Ansible:Design ]

Jede VM verwendet ihre eigene virtuelle CPU, Arbeitsspeicher, Festplatte und NICs (Netzwerkschnittstellenkarten), die physischen Maschinenressourcen zugeordnet sind. Grundsätzlich sind VMs Testumgebungen, die Ihnen aufgrund ihrer Verfügbarkeit, schnellen Build-Zeiten und Portabilität zwischen Hosts Geld, Zeit und andere Ressourcen sparen können. VMs bieten sichere Umgebungen zum Testen der neuesten Software und Anwendungen, ohne das Risiko einzugehen, Ihr physisches Hostsystem zu beschädigen.

Hinweis:Während VMs und Hosts logisch voneinander getrennt sind, sind VMs selbst nicht mehr oder weniger sicher als ein eigenständiges Betriebssystem auf einer physischen Maschine. Und vernetzte Systeme, physisch oder virtuell, sind gleichermaßen anfällig für netzwerkbasierte Angriffe und Herausforderungen.

Es gibt wesentliche Unterschiede zwischen VMs und Containern

Nachdem Sie nun die Definition und einige Anwendungsfälle für VMs und Container kennen, können Sie die Hauptunterschiede zwischen VMs und Containern in der folgenden Tabelle vergleichen:

Kubernetes

Kubernetes ist ein Open-Source-System zur Automatisierung der Bereitstellung, Skalierung und Verwaltung containerisierter Anwendungen. K8s, früher bekannt als Borg, wurde von Google verwendet, bevor es ein Open-Source-Projekt wurde. Es wird jetzt von der CNCF (Cloud Native Computing Foundation) gewartet und verwaltet. K8s gruppieren Container zu einer logischen Einheit namens Pod. Pods bilden Anwendungen. Pods bieten außerdem eine einfache Verwaltung und Erkennung.

Warum sollten wir Kubernetes verwenden?

Als Microservices und Clouds aufkamen, mussten Tausende von Containern verwaltet werden, die auf einem System ausgeführt wurden. Dies lag zum Teil an hohen Verfügbarkeitsanforderungen und anderen Notwendigkeiten.

Zu den Hauptvorteilen von Kubernetes gehören:

  • Automatisierte Rollouts und Rollbacks:Hilft bei automatischen Rollouts von Änderungen und stellt sicher, dass nicht alle Pods gleichzeitig ausfallen. Es überwacht den Zustand und kann verwendet werden, um Änderungen rückgängig zu machen.
  • Diensterkennung und Lastausgleich:Hilft dabei, den Pods (die Wrapper für Container sind) ihre eigenen IP-Adressen und einen einzigen DNS-Namen zu geben. K8s hilft auch, die Last auszugleichen.
  • Service-Topologie:Hilft beim Routing des Service-Traffics basierend auf der Cluster-Topologie.
  • Speicherorchestrierung:Stellt das Speichersystem Ihrer Wahl bereit, z. B. lokale Speicher oder Speicherdienste von Cloud-Anbietern.
  • Skalierung:Skaliert Ihre Anwendung basierend auf der CPU-Auslastung über CLI oder eine GUI.
  • Selbstheilung:Startet fehlgeschlagene Container neu, beendet Container, die nicht auf Benutzeranfragen reagieren, und hilft dabei, Container wieder hochzufahren, die nicht auf Ihre Zustandsprüfung reagieren.

Anwendungsfälle, Effizienz und Kostensenkung

Sie kennen die Vorteile von K8s, aber jetzt zeige ich Ihnen, warum jedes Unternehmen von Kubernetes profitieren kann. Unternehmen benötigen ihre Produkte, um ihren Kunden schnell und zuverlässig zur Verfügung zu stehen. Kubernetes hilft genau dabei. Es zerlegt Ihre Komponenten in Microservices, die im Mittelpunkt kleinerer Teams stehen können. Die Teile werden später über APIs miteinander integriert. Auf diese Weise hat jedes Team einen geringeren Fokus und beschleunigt den gesamten Veröffentlichungsprozess.

Verbesserte Skalierbarkeit

In modernen Zeiten, in denen sich die Benutzerlast dynamisch ändert, wissen Sie nie, wann es zu Ausfallzeiten kommt. Angenommen, Sie haben an einem bestimmten Tag einen Blitzverkauf geplant. An diesem Tag ist die Verfügbarkeit Ihrer Anwendung für die Kunden ein Muss. Kubernetes hilft bei der Skalierung der Pods, die die Funktionalität aufrechterhalten. Außerdem werden die Pods nach Abschluss des Verkaufs reduziert, was eine automatische Kostensenkung bietet.

Verfügbar für Multi-Cloud-Umgebungen

Der größte Vorteil von Kubernetes besteht darin, dass es Unternehmen dabei unterstützt, ihre Anwendungen in verschiedenen öffentlichen und privaten Cloud-Umgebungen bereitzustellen. Es ermöglicht Ihnen die Verwendung von Hybrid-Clouds, wodurch eine Anbieterbindung vermieden wird. Außerdem können Unternehmen ihre Workloads migrieren, was ihnen den maximalen Return on Investment (ROI) verschafft.

[ Lernen Sie die Grundlagen der Verwendung von Kubernetes in diesem kostenlosen Spickzettel. ] 

Abschluss

Dieser einzelne Artikel kann nicht alle Anwendungsfälle für Kubernetes abdecken, aber jetzt haben Sie eine Vorstellung davon, wie K8s entstanden ist, was es ist und was es für Sie tun kann.


Linux
  1. Was ist ein Docker-Container:Eine Einführung für Anfänger

  2. 10 Containerleitfäden für Systemadministratoren

  3. Entmystifizierung von Ansible für Linux-Systemadministratoren

  4. 5 erweiterte rsync-Tipps für Linux-Systemadministratoren

  5. 30 Übungen zu Linux-Prozessen für Systemadministratoren

VLANs für Systemadministratoren:Die Grundlagen

Die fünf besten Vim-Plugins für Systemadministratoren

Kurzanleitung zu Ansible für Linux-Systemadministratoren

Traefik für Docker-Container auf Ubuntu

30 Übungen zu Linux-Berechtigungen für Systemadministratoren

40 nützliche Linux-Netzwerkbefehle für moderne SysAdmins