News
Serverspace Technologien in den VAE: Einführung von Falconcloud
DC
Daniella Coleman
9. Juni 2023
Aktualisiert Juli 25, 2023

Was ist Kubernetes?

Was ist
 Kubernetes?

Die Anwendungsbereitstellungsprozesse haben sich in den letzten Jahren erheblich verändert und die Praxis der Anwendungscontainerisierung hat sich ausgeweitet. Dabei handelt es sich um eine Packmethode für Apps und ihre Abhängigkeiten in isolierte Container, die in praktisch jeder Laufzeitumgebung bereitgestellt und ausgeführt werden können. Eine beliebte Container-Orchestrierungsplattform ist KubernetesDarüber hinaus bietet es Tools zur Automatisierung der Bereitstellung, Skalierung und Verwaltung von Containeranwendungen, wodurch die Komplexität und der Aufwand für diese Vorgänge reduziert werden.

K8S. Was ist das in einfachen Worten?

Kubernetes (k8s) ist eine offene, erweiterbare Plattform zur Automatisierung der Bereitstellung, Skalierung und Verwaltung von Containeranwendungen, die vom Google-Team entwickelt wurde. Es bietet eine Reihe von Funktionen und Tools zur effizienten Verwaltung von Containern mit Apps in verteilten Umgebungen.

Die wichtigsten Vorteile von K8:

  • Durch die automatisierte Containerbereitstellung und -verwaltung können Entwickler einen Containercluster effizient verwalten. Es bietet Tools zum Starten, Herunterfahren und Überwachen von Containern sowie zum Lastmanagement und Lastausgleich zwischen Clusterknoten.
  • Skalierbarkeit der Apps horizontal und vertikal. Reagiert automatisch auf Laständerungen und kann die Anzahl der Containerinstanzen erhöhen oder verringern, um optimale Leistung und Verfügbarkeit sicherzustellen.
  • Die integrierte Selbstheilung ist in der Lage, ausgefallene Container oder Knoten automatisch zu erkennen und zu reparieren und so einen unterbrechungsfreien Anwendungsbetrieb sicherzustellen.
  • Verwendung eines deklarativen Modells, in dem Entwickler einen gewünschten Zustand des Systems definieren und Kubernetes richtet das System selbstständig auf diesen Zustand aus. Dies vereinfacht den Prozess der Bereitstellung und Verwaltung von Apps und sorgt für Konsistenz und Vorhersehbarkeit in der Umgebung.
  • Unterstützung für verschiedene Umgebungen. Kubernetes ermöglicht die Bereitstellung von Containern auf verschiedenen Plattformen, einschließlich Cloud-Anbietern (z. B AWS, Google Cloud, Microsoft Azure) und eigene lokale Server. Dies bietet Flexibilität und Vielseitigkeit bei der Wahl der Infrastruktur.

Kubernetes Serverspace

K8S-Geschichte

Die Geschichte der Kubernetes begann mit Googles Projekt, ein System zur internen Verwaltung skalierbarer Anwendungen zu entwickeln. Im Jahr 2003 begann Google, ein System namens Borg zu verwenden, um seine verteilten Anwendungen und Ressourcen im gesamten Unternehmen zu verwalten. Borg sorgte für automatische Bereitstellung, Skalierung, Überwachung und Ressourcenverwaltung.

Im Jahr 2014 beschlossen die Google-Ingenieure, eine offene und zugängliche Version eines Container-Management-Systems zu entwickeln, das auf den Erfahrungen und Prinzipien von Borg basiert. Sie begannen mit der Entwicklung eines Projekts namens Kubernetes. Google war davon überzeugt, dass Containerisierung und App-Orchestrierung wichtige Bestandteile der Entwicklung und Verwaltung moderner Apps sind, und beschloss, sein Wissen und seine Tools mit der breiteren Entwicklergemeinschaft zu teilen.

Google hat die erste öffentliche Version von angekündigt Kubernetes im Juni 2014. Die Plattform wurde als Open Source veröffentlicht und an die Cloud übergeben Native Computing Foundation (CNCF), eine Organisation, die die Entwicklung von Cloud-Technologien und -Projekten unterstützt. Seit seiner Veröffentlichung Kubernetes hat breite Unterstützung erhalten und enorme Aufmerksamkeit von der Entwicklergemeinschaft und der Industrie auf sich gezogen. Es ist zum De-facto-Standard für die Verwaltung von Containeranwendungen geworden. Und jetzt ist es eines der sich am aktivsten entwickelnden Projekte im CNCF.

Kubernetes entwickelt sich auch heute noch weiter. Es zieht immer mehr Unternehmen und Organisationen an, die damit ihre Apps über verschiedene Infrastrukturen hinweg verwalten. Kubernetes bietet leistungsstarke Tools zum Bereitstellen, Skalieren und Verwalten von Anwendungen auf verschiedenen Plattformen, einschließlich Cloud-Anbietern wie z Serverspace und On-Premises-Umgebungen.

k8s hat in den letzten Jahren erhebliche Veränderungen und Weiterentwicklungen erfahren und ist heute ein integraler Bestandteil moderner Devops- und Cloud-Anwendungsentwicklung. Es gab viele neue Versionen mit neuen Funktionen und Verbesserungen. Unternehmen und Organisationen auf der ganzen Welt nutzen aktiv Kubernetes um ihre Containeranwendungen zu verwalten. Das Ökosystem rund um die Plattform wächst stetig.

Kubernetes Architektur

Kubernetes Architecture

1. Masterknoten oder Kontrollebenenknoten. Dort werden die meisten wichtigen Aufgaben der Verwaltung und Administration eines k8s-Clusters ausgeführt. Es besteht aus vier Hauptkomponenten:

  • Das API Der Server bietet eine Schnittstelle für die Kommunikation mit dem Kubernetes API.
  • Controller bieten Clusterverwaltung und -überwachung, einschließlich Deployment Controller, Replication Controller und anderen.
  • Der Scheduler ist für die Planung und Bereitstellung von Pods auf Arbeitsknoten basierend auf Ressourcenanforderungen und Bereitstellungsrichtlinien verantwortlich.
  • etcd ist ein verteiltes Schlüsselwert-Repository, das zum Speichern der Clusterkonfiguration und des Clusterstatus verwendet wird.

2. Knoten werden verwendet, um auf die physischen oder virtuellen Maschinen zu verweisen, auf denen die Container ausgeführt und betrieben werden. Jeder Knoten stellt einen Worker-Knoten in einem dar Kubernetes Cluster. Der Knoten ist die Ausführungsumgebung für die Container und stellt Ressourcen und Einrichtungen zum Ausführen von Anwendungen in den Containern bereit. Der Knoten führt a aus Kubernetes Agent namens Kubelet, der den Lebenszyklus von Containern und Pods auf diesem Knoten verwaltet.

Jeder Knoten verfügt über eigene Rechenressourcen (CPU, Speicher, Speicher) und Netzwerkschnittstellen. Knoten sind über ein Netzwerk mit Masterknoten verbunden, um Informationen über den Clusterstatus auszutauschen und Befehle zum Platzieren und Verwalten von Containern zu empfangen.

  • Kubelet ist ein auf jedem Worker-Knoten installierter Agent, der Container in Pods verwaltet und steuert, die sich auf diesem Knoten befinden;
  • Kube-Proxy bietet Netzwerkkonnektivität für Pods, einschließlich Proxying und Lastausgleich;
  • Container Runtime ist für die Ausführung und Verwaltung von Containern verantwortlich, z Docker, Containerd, CRI-O.

3. Pods sind eine einfache und minimal einsetzbare Einheit, die einen oder mehrere Container zusammenführt und ihnen eine isolierte Laufzeitumgebung bietet. Pods sind der Grundbaustein für das Hosten und Verwalten von Containern Kubernetes.

4. Dienste: Eine Abstraktion, die einen dauerhaften Zugriffspunkt auf eine Gruppe von Pods und einen Lastausgleich zwischen ihnen bereitstellt.

5. Optionale Komponenten:

  • Der Replication Controller ermöglicht die Ausführung und Verwaltung mehrerer Pod-Instanzen, um die Ausfallsicherheit und Skalierbarkeit der Anwendung zu verbessern.
  • Persistente Volumes ermöglichen es Anwendungen, Daten im persistenten Speicher beizubehalten, selbst wenn Pods neu gestartet oder verschoben werden.
  • Zu den Konfigurationen und Geheimnissen gehören ConfigMaps zum Speichern von Konfigurationsdaten und Geheimnisse zum sicheren Speichern sensibler Informationen wie Passwörter oder Zugriffsschlüssel.
  • Der Ingress Controller ermöglicht die Verwaltung des eingehenden Netzwerkverkehrs im Cluster und ermöglicht die Konfiguration von Routing und Lastausgleich für Dienste.
  • Name und Vornamespaces werden zur logischen Partitionierung und Isolierung von Ressourcen im Cluster verwendet und ermöglichen die Erstellung virtueller Gruppen für Anwendungen und Benutzer.
  • Kubernetes lässt sich in verschiedene Überwachungs- und Protokollierungssysteme wie Prometheus, Grafana, ELK Stack und andere integrieren, um Beobachtbarkeit und Analyse des Cluster- und Anwendungszustands zu ermöglichen.

Kubernetes und Aufgaben

Das Containerverwaltungssystem übernimmt eine Reihe wichtiger Aufgaben im Zusammenhang mit der Containerverwaltung:

  • Containerbereitstellung und Statusverwaltung. Kubernetes Bietet die Möglichkeit, Container zu starten, herunterzufahren und neu zu starten. Dadurch wird sichergestellt, dass die erforderlichen Anwendungen ausgeführt und auf dem neuesten Stand gehalten werden.
  • Anwendungen skalieren. Kubernetes ermöglicht die Skalierung von Anwendungen durch die gleichzeitige Ausführung mehrerer Container auf einer großen Anzahl von Hosts. Dies sorgt für eine effizientere Ressourcennutzung und verbessert die Systemstabilität.
  • Lastverteilung. Kubernetes Gleicht die Ladung automatisch zwischen den Containern aus, verteilt sie gleichmäßig und sorgt für eine optimale Systemleistung. Verwendung der Kubernetes API, Kubernetes Gruppiert Container logisch, definiert ihre Pools und Platzierung, was eine effiziente Ressourcennutzung fördert.

Kubernetes Installationsprozess

Das Kubernetes Service, den Sie können Auftrag der Serverspace Bedienfeld durch Auswahl der Version, Cluster-Standort und Konfiguration CPU, RAM und Anzahl der Knoten. Dort können Sie auch das Dashboard im Panel anbinden. Aber wie fängt man mit der Arbeit an?

Über unser Control Panel können Sie Cluster erstellen und löschen, ihre Konfiguration ändern sowie Knoten hinzufügen und entfernen. Für andere Aufgaben benötigen Sie Befehlszeilentools, die speziell für die Arbeit mit Clustern entwickelt wurden.

kubectl ist ein Kubernetes Befehlsdienstprogramm. Damit können Sie eine Vielzahl von Befehlen ausführen, um mit Ihrem zu interagieren Kubernetes Cluster. Kubectl bietet die Möglichkeit, Anwendungen bereitzustellen, Clusterressourcen zu überwachen und zu verwalten sowie Protokolle anzuzeigen. Eine vollständige Liste der Kubectl-Funktionen finden Sie in der offiziellen Dokumentation unter Kubernetes Webseite.

Schauen wir uns die Installation des Dienstprogramms an Ubuntu. Zunächst müssen Sie den folgenden Befehl verwenden:

sudo apt-get update && sudo apt-get install -y apt-transport-https
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee -a /etc/apt/sources.list.d/kubernetes.list
sudo apt-get update
sudo apt-get install -y kubectl

So verbinden Sie sich mit einem Kubernetes Um den Cluster über die Befehlszeile zu installieren, benötigen Sie eine Konfigurationsdatei mit Authentifizierungszertifikaten und anderen Verbindungsinformationen. Befolgen Sie diese Schritte, um die Datei auf Ihren Computer oder Server herunterzuladen und zu importieren.

Laden Sie die Konfigurationsdatei auf Ihren Computer oder Server herunter:

export KUBECONFIG=pathtofile

Sie müssen nun eine Verbindung zum Cluster herstellen.
Um die Verbindung zum Cluster zu überprüfen, rufen Sie die Cluster-Statusinformationen ab:

kubectl cluster-info

Eine erfolgreiche Verbindung führt zu der Adresse, unter der Control Plane ausgeführt wird:

Kubernetes control plane is running at https://XXX.XXX.XXX.XXX:YYY

Um Clusterprobleme weiter zu debuggen und zu diagnostizieren, verwenden Sie „kubectl Cluster-Info Dump“.

Wenn kubectl nicht richtig konfiguriert ist oder keine Verbindung herstellen kann Kubernetes Cluster wird die folgende Meldung in der Konsole angezeigt:
Die Verbindung zum Server „xxx.xxx.xxx.xxx:yyy“ wurde abgelehnt – haben Sie den richtigen Host oder Port angegeben?

Verwenden Sie den folgenden Befehl, um Verbindungsfehler zu diagnostizieren, der detaillierte Informationen ausgibt:

kubectl cluster-info dump

Sie können die Verwendung Kubernetes Spickzettel, um mit kubectl zu arbeiten und sich mit den Grundlagen vertraut zu machen Kubernetes Befehle.

Das könnte dir auch gefallen ...

Wir verwenden Cookies, um Ihr Erlebnis auf der Website zu verbessern Serverspace besser. Indem Sie weiterhin auf unserer Website surfen, stimmen Sie unseren zu
Cookies machen Datenschutzbestimmungen.