Erstellen einer hochverfügbaren Cluster-Strategie
Konzipieren Sie Ihren Standardcluster mit IBM Cloud® Kubernetes Service für maximale Verfügbarkeit und Kapazität für Ihre App. Nutzen Sie die integrierten Funktionen, um die Verfügbarkeit Ihres Clusters zu erhöhen und Ihre Anwendung vor Ausfallzeiten zu schützen, wenn eine Komponente in Ihrem Cluster ausfällt. Es ist jedoch keine exakte Wissenschaft, herauszufinden, wie Ihr Cluster aufgebaut sein muss, um Ihre Arbeitslast zu unterstützen. Möglicherweise müssen Sie unterschiedliche Konfigurationen testen und anpassen.
Hochverfügbarkeit (High Availability, HA) ist eine zentrale Disziplin in einer IT-Infrastruktur, um Ihre Apps auch nach einem partiellen oder vollständigen Ausfall der Site betriebsbereit zu halten. Der Hauptzweck der Hochverfügbarkeit ist es, potenzielle Fehlerquellen in einer IT-Infrastruktur zu eliminieren. Sie können sich beispielsweise auf den Ausfall eines Systems vorbereiten, indem Sie Redundanz hinzufügen und Failover-Mechanismen einrichten. Weitere Informationen finden Sie unter Sicherstellen der Hochverfügbarkeit und Disaster-Recovery durch IBM Cloud.
Um mit der Planung und Dimensionierung Ihres Clusters zu beginnen, sollten Sie diese Entscheidungspunkte vor der Erstellung eines Clusters überprüfen.
Entscheiden Sie, wie viele Cluster Sie erstellen möchten
Die Wahrscheinlichkeit, dass Ihre Benutzer Ausfallzeiten verzeichnen, ist geringer, wenn Sie Ihre Apps auf mehrere Workerknoten, Zonen und Cluster verteilen. Integrierte Funktionen wie Lastausgleich (Load Balancing) und Isolation erhöhen die Ausfallsicherheit gegenüber möglichen Fehlerbedingungen mit Hosts, Netzen oder Apps.
Die Anzahl der Cluster, die Sie erstellen, hängt von Ihrer Arbeitslast, den Unternehmensrichtlinien und -vorschriften, den geschäftlichen Anforderungen, den Service Level Agreements, die Sie mit Ihren Kunden abgeschlossen haben, den Ressourcen, die Sie aufwenden wollen, und der Art und Weise, wie Sie die Computerressourcen nutzen wollen, ab.
-
Mehrere Cluster: Mehrere Cluster sind in der Regel komplexer zu verwalten, können Ihnen aber dabei helfen, wichtige Ziele wie die folgenden zu erreichen.
- Einhalten von Sicherheitsrichtlinien, die eine Isolierung von Workloads erfordern.
- Testen Sie, wie Ihre App in einer anderen Version von Kubernetes oder anderen Clustersoftware wie z. B. Calico ausgeführt wird.
- Erzielen Sie eine höhere Leistung für Nutzer in verschiedenen geografischen Gebieten.
- Vereinfachen Sie den Benutzerzugriff, um den Zugriff innerhalb eines Clusters zu kontrollieren, indem Sie den Zugriff auf der Ebene der Cluster-Instanz konfigurieren, anstatt mehrere RBAC-Richtlinien auf Namespace-Ebene anzupassen und zu verwalten.
- Halten Sie die Anzahl der Arbeitsknoten niedriger. Die Netzwerkbandbreite bei der Skalierung virtueller Maschinen beträgt etwa 1000 Mbit/s. Wenn Sie Hunderte von Worker Nodes in einem Cluster benötigen, können Sie die Konfiguration in mehrere Cluster mit weniger Nodes aufteilen oder Bare Metal Nodes bestellen.
- Ermöglichen Sie eine größere Anzahl von Diensteintegrationen, z. B. mehr als 5.000 Dienste.
- Bieten Sie einer Anwendung eine höhere Verfügbarkeit. Ähnlich wie bei der Verwendung von 3 Zonen in Multizonen-Clustern können Sie Ihrer Anwendung mehr Verfügbarkeit bieten, indem Sie drei zonenübergreifende Cluster einrichten.
- Senken Sie die Kosten durch den Kauf kleinerer Maschinen, um Ihr Arbeitsaufkommen zu bewältigen.
-
Ein Cluster mit mehreren Worker-Knoten: Mit weniger Clustern können Sie den Betriebsaufwand und die Kosten pro Cluster für feste Ressourcen reduzieren. Anstatt mehrere Cluster zu erstellen, können Sie einem Cluster Worker-Pools hinzufügen, um verschiedene Arten von Computing-Ressourcen für Ihre Anwendungs- und Servicekomponenten bereitzustellen. Wenn Sie die App entwickeln, befinden sich die Ressourcen, die sie verwendet, in derselben Zone oder sind auf andere Weise in einer Mehrfachzone eng verbunden, sodass Sie Annahmen zu Latenzzeiten, Bandbreite oder korrelierten Fehlern machen können. Wenn Sie jedoch nur einen Cluster haben, wird es noch wichtiger, dass Sie Ihren Cluster mit Hilfe von Namensräumen, Ressourcenquoten und Labels organisieren.
Bestimmen Sie, wie viele Standorte benötigt werden
Ein Cluster kann Replikate entweder auf Worker-Knoten an einem einzigen Standort oder auf mehrere Standorte verteilen. Diese Wahl kann sich auf die Clustertypen auswirken, die Ihnen im nächsten Abschnitt zur Verfügung stehen.
Durch die Verteilung der Workload auf drei Zonen wird Hochverfügbarkeit für Ihre App für den Fall sichergestellt, dass eine Zone nicht mehr verfügbar ist. Ihre Workerknoten müssen gleichmäßig auf alle drei Verfügbarkeitszonen verteilt sein, um das IBM Cloud-Service-Level-Agreement (SLA) für HA-Konfigurationen zu erfüllen.
Ein Zonenfehler wirkt sich auf alle physischen Datenverarbeitungshosts und den NFS-Speicher aus. Fehler umfassen Ausfälle bei Stromversorgung, Kühlung, Netzbetrieb oder Speicherausfälle sowie Naturkatastrophen wie Überschwemmungen, Erdbeben und Stürme. Um sich gegen einen Zonenausfall zu schützen, müssen Sie Cluster in zwei verschiedenen Zonen haben, die durch einen externen Load Balancer ausgeglichen werden, einen Cluster an einem Standort mit mehreren Zonen erstellen, der den Master über die Zonen verteilt, oder die Einrichtung eines zweiten Clusters in einer anderen Zone in Betracht ziehen.
Mehrzonencluster
Klassisch VPC
Multizone-Cluster verteilen Workloads auf mehrere Worker Nodes und Zonen und bieten so zusätzlichen Schutz vor Zonenausfällen. Worker-Knoten werden automatisch mit drei Replikaten über mehrere Zonen verteilt bereitgestellt. Wenn eine ganze Zone ausfällt, wird Ihre Arbeitslast auf Worker Nodes in den anderen Zonen verteilt, sodass Ihre Anwendung vor dem Ausfall geschützt ist.
Jede Region wird mit einer hoch verfügbaren Lastausgleichsfunktion konfiguriert, auf die von einem regionsspezifischen API-Endpunkt aus zugegriffen werden kann. Die Lastausgleichsfunktion leitet eingehende und ausgehende Anforderungen an Cluster in den Regionszonen weiter. Die Wahrscheinlichkeit eines vollständigen regionalen Ausfalls ist gering. Um diesem Fehler jedoch vorzubeugen, können Sie mehrere Cluster in verschiedenen Regionen einrichten und sie mithilfe einer externen Lastausgleichsfunktion verbinden. Fällt eine ganze Region aus, kann der Cluster in der anderen Region die Arbeitslast übernehmen.
Beispiel: Sie stellen Ihren Multizonen-Cluster in einer Metro-Region bereit, z. B. sydney, und drei Replikate werden automatisch auf die drei Zonen der
Metro verteilt, z. B. au-syd-1, au-syd-2 und au-syd-3. Falls Ressourcen in einer Zone ausfallen, werden Ihre Cluster-Workloads in den anderen Zonen weiterhin ausgeführt.
Ein Cluster in mehreren Regionen erfordert mehrere Cloudressourcen und kann abhängig von Ihrer App sehr komplex und kostenintensiv sein. Prüfen Sie, ob Sie eine Konfiguration über mehrere Regionen benötigen, oder ob Sie mit einer möglichen Serviceunterbrechung umgehen können. Wenn Sie einen Cluster mit mehreren Regionen konfigurieren möchten, stellen Sie sicher, dass Ihre App und die Daten in einer anderen Region gehostet werden können, und dass Ihre App die Replikation globaler Daten handhaben kann.
Mehrere mit Lastverteilern verbundene Cluster
Klassisch VPC
Um Ihre Anwendung vor einem Master-Ausfall zu schützen, können Sie mehrere Cluster in verschiedenen Zonen innerhalb einer Region erstellen und sie mit einem globalen Load Balancer verbinden. Diese Option ist nützlich, wenn Sie einen Cluster in einem klassischen Rechenzentrum mit nur einer Zone bereitstellen müssen, aber dennoch die Vorteile der Multizonen-Verfügbarkeit nutzen möchten.
Um mehrere Cluster mit einem globalen Load Balancer zu verbinden, müssen die Cluster mit einer öffentlichen Netzwerkkonnektivität eingerichtet und Ihre Anwendungen über Ingress, Routen oder mit einem Kubernetes Load Balancer Service zugänglich gemacht werden.
Um Ihre Arbeitslast auf mehrere Cluster zu verteilen, müssen Sie einen globalen Load Balancer über Cloud Internet Services (CIS) einrichten und die öffentlichen IP-Adressen Ihrer ALBs oder Load Balancer Services zu Ihrer Domain hinzufügen. Durch das Hinzufügen dieser IP-Adressen können Sie eingehenden Datenverkehr zwischen Ihren Clustern weiterleiten.
Damit die globale Lastausgleichsfunktion erkennen kann, ob einer der Cluster nicht verfügbar ist, sollten Sie in Betracht ziehen, jeder IP-Adresse eine Ping-basierte Statusprüfung hinzuzufügen. Wenn Sie diese Prüfung einrichten, überprüft Ihr DNS-Provider regelmäßig mit Ping die IP-Adressen, die Sie zu Ihrer Domäne hinzugefügt haben. Wenn eine IP-Adresse nicht mehr verfügbar ist, wird der Datenverkehr nicht mehr an diese IP-Adresse gesendet. Kubernetes startet jedoch nicht automatisch erneut Pods von dem nicht verfügbaren Cluster auf Workerknoten in verfügbaren Clustern. Wenn Sie möchten, dass Kubernetes Pods in verfügbaren Clustern automatisch neu startet, sollten Sie einen Multizone-Cluster einrichten.
Einzelzonencluster
Klassisch
Die Arbeiterknoten sind auf verschiedene physische Hosts innerhalb einer einzigen Zone verteilt. Diese Option schützt vor bestimmten Ausfällen, z. B. während eines Master-Updates, und ist einfacher zu verwalten. Sie schützt Ihre Anwendungen jedoch nicht, wenn eine ganze Zone ausfällt. Wenn Sie später feststellen, dass die Verfügbarkeit ein Problem darstellt, können Einzelzonen-Cluster, die an bestimmten Standorten eingesetzt werden, später in Multizonen-Cluster umgewandelt werden.
Wenn Ihr Cluster mit allen Arbeitsknoten in einer einzigen Zone erstellt wird, ist der Kubernetes-Master Ihres klassischen Clusters hochverfügbar und enthält separate physische Hosts für Ihren Master-API-Server, etcd, Scheduler und Controller-Manager, um sich gegen einen Ausfall zu schützen, z. B. während einer Master-Aktualisierung. Sie können zusätzliche Arbeitsknoten zu Ihrem Einzelzonen-Cluster hinzufügen, um die Verfügbarkeit zu verbessern und sich für den Fall abzusichern, dass ein Arbeitsknoten ausfällt.
Wenn ein Workerknoten ausfällt, werden die App-Instanzen auf den verfügbaren Workerknoten weiter ausgeführt. Kubernetes plant Pods von nicht verfügbaren Workerknoten automatisch neu, um die Leistung und Kapazität für Ihre App zu gewährleisten. Um sicherzustellen, dass Ihre Pods gleichmäßig auf Worker Nodes verteilt sind, implementieren Sie Pod-Affinität.
Wählen Sie einen Clustertyp
Die Workerknotentypen und Isolationsstufen, die Ihnen zur Verfügung stehen, hängen von der Containerplattform, von dem Clustertyp und von dem Infrastrukturprovider, die Sie verwenden wollen, sowie von dem IBM Cloud Kubernetes Service-Standort ab, an dem Sie Ihren Cluster erstellen wollen. Sie können zwischen Classic-, VPC- oder Satellite-Clustern wählen. Die Art des Clusters, die Sie benötigen, wird durch die Entscheidungen bestimmt, die Sie für die Anzahl der Cluster und die Standorte getroffen haben.
- VPC-Cluster
- Worker Nodes können über virtuelle Worker Nodes auf Standardinfrastrukturen oder dedizierten Hosts bereitgestellt werden. Wenn Geschwindigkeit für Sie eine große Rolle spielt, sind VPC-Cluster möglicherweise die beste Wahl.
- Satellite-Cluster
- Worker Nodes können auf virtuellen Maschinen bei Cloud-Anbietern wie AWS, Azure, GCP und anderen bereitgestellt werden. Worker Nodes können auch über Ihre eigene Infrastruktur vor Ort bereitgestellt werden.
- Klassische Cluster
- Worker Nodes können auf virtuellen und Bare Metal Worker Nodes erstellt werden. Wenn Sie zusätzliche lokale Platten benötigen, können Sie außerdem einen der Bare-Metal-Typen auswählen, die für Software-Defined Storage-Lösungen wie Portworx vorgesehen sind.
Auswahl eines Betriebssystems für den Cluster
Welche Betriebssysteme Ihnen zur Verfügung stehen, hängt von dem von Ihnen gewählten Clustertyp ab.
- Ubuntu 24
- Weitere Informationen finden Sie in den Versionshinweisen Ubuntu 24.04. Beachten Sie, dass NTP mit Ubuntu 24
timesyncdverwendet und die entsprechenden Befehle möglicherweise aktualisiert werden.
Migrieren Sie auf ein neues Betriebssystem? Siehe Migration auf eine neue Ubuntu-Version.
Definieren Sie eine Strategie zur Benennung von Clustern
Verwenden Sie bei der Angabe von Clustern eindeutige Namen für Ressourcengruppen und Regionen in Ihrem Konto, um Namenskonflikte zu vermeiden. Sie können einen Cluster nicht umbenennen, nachdem er erstellt wurde.
Entscheiden Sie, wie viele Arbeitsknoten für jeden Cluster
Der Verfügbarkeitsgrad, den Sie für Ihren Cluster einrichten, hat Auswirkungen auf Ihre Abdeckung in Bezug auf die Bedingungen des IBM Cloud-HA-Service-Level-Agreements. Um beispielsweise eine vollständige HA-Abdeckung gemäß den SLA-Bedingungen zu erhalten, müssen Sie einen Cluster mit mehreren Zonen mit insgesamt mindestens 6 Workerknoten einrichten, zwei Workerknoten pro Zone, die gleichmäßig auf drei Zonen verteilt sind.
Die Gesamtzahl der Workerknoten in einem Cluster bestimmt die Datenverarbeitungsfunktionalität, die für Ihre Apps im Cluster zur Verfügung steht. Sie können Ihre Einrichtung bei einem Ausfall eines Worker Nodes schützen, indem Sie mehrere Worker Nodes in Ihrem Cluster einrichten. Zu den Ausfällen von Worker Nodes können Hardwareausfälle wie Strom-, Kühlungs- oder Netzwerkprobleme sowie Probleme mit der VM selbst gehören.
-
Multizonen-Cluster Klassisch VPC: Planen Sie mindestens zwei Worker Nodes pro Zone ein, also insgesamt sechs Nodes in drei Zonen. Planen Sie außerdem für die Gesamtkapazität Ihres Clusters mindestens 150 Prozent der erforderlichen Gesamtkapazität für die Workload, sodass Sie, wenn eine Zone ausfällt, Ressourcen für die Aufrechterhaltung der Workload zur Verfügung haben.
-
Einzelzonen-Cluster Planen Sie mindestens drei Arbeitsknoten in Ihrem Cluster ein. Weiterhin benötigen Sie genügend im Cluster verfügbare CPU- und Speicherkapazität für einen zusätzlichen Knoten. Wenn Ihre Anwendungen weniger Ressourcen benötigen als auf dem Worker Node verfügbar sind, können Sie die Anzahl der Pods, die Sie auf einem Worker Node bereitstellen, möglicherweise begrenzen.
Denken Sie daran:
- Sie können den Cluster-Autoscaler ausprobieren, um sicher zu sein, dass Sie immer genügend Worker Nodes haben, um Ihre Arbeitslast abzudecken.
- Kubernetes beschränkt die maximale Anzahl von Workerknoten, die in einem Cluster vorhanden sein können. Weitere Informationen finden Sie unter Quoten für Arbeitsknoten und Pods.
Worker-Node-Varianten auswählen
Ein Arbeitsknoten ist eine VM, die auf physischer Hardware läuft. Ein Workerknotentyp ('Flavor') beschreibt die Datenverarbeitungsressourcen, wie CPU-, Speicher- und Plattenkapazität, die Sie erhalten, wenn Sie Ihren Workerknoten bereitstellen. Workerknoten desselben Typs werden in Workerknotenpools zusammen gruppiert.
Bei der Auswahl eines Clustertyps haben Sie bereits darüber nachgedacht, wie sich der Standort des Worker Node Flavor und der Maschinentyp auf Ihre Entscheidung auswirken. Bei der Auswahl der Worker-Node-Varianten sollten Sie Folgendes beachten.
-
Tenancy: Je nach dem von Ihnen benötigten Grad der Hardware-Isolierung können virtuelle Arbeitsknoten so eingerichtet werden, dass sie von mehreren IBM Kunden gemeinsam genutzt werden (Multi-Tenancy) oder nur für Sie bestimmt sind (Single-Tenancy). Bare-Metal-Maschinen werden immer als dediziert eingerichtet. Wenn Sie sich zwischen gemeinsam genutzten und dedizierten Knoten entscheiden, sollten Sie sich mit Ihrer Rechtsabteilung absprechen, um den Grad der Isolierung der Infrastruktur und der Einhaltung von Vorschriften zu besprechen, den Ihre Anwendungsumgebung erfordert.
- Gemeinsam genutzt: Physische Ressourcen wie CPU und Arbeitsspeicher werden von allen virtuellen Maschinen, die auf derselben physischen Hardware bereitgestellt werden, gemeinsam genutzt. Um sicherzustellen, dass jede virtuelle Maschine unabhängig von anderen Maschinen ausgeführt werden kann, segmentiert ein VM-Monitor, d. h. eine Überwachungsfunktion für virtuelle Maschinen, die auch als Hypervisor bezeichnet wird, die physischen Ressourcen in isolierte Entitäten und ordnet diese einer virtuellen Maschine als dedizierte Ressourcen zu. Dies wird als Hypervisor-Isolation bezeichnet. Gemeinsam genutzte Knoten sind in der Regel kostengünstiger als dedizierte Knoten, weil die Kosten für die ihnen zugrunde liegende Hardware von mehreren Kunden getragen werden.
- Gewidmet: Alle physischen Ressourcen sind nur für Sie bestimmt. Sie können mehrere Workerknoten als virtuelle Maschinen auf demselben physischen Host bereitstellen. Ähnlich wie bei der Multi-Tenant-Konfiguration stellt der Hypervisor auch hier sicher, dass jeder Workerknoten seinen Anteil an den verfügbaren physischen Ressourcen erhält.
-
Maschinentyp: Sie haben eine Reihe von Maschinentypen zur Auswahl.
-
Virtuelle Maschinen: Größere Flexibilität, kürzere Bereitstellungszeiten, mehr automatische Skalierbarkeitsfunktionen und ein günstigerer Preis: Verwenden Sie VMs. Sie können virtuelle Maschinen für die meisten allgemeinen Anwendungsfälle, wie Test- und Entwicklungsumgebungen, Staging- und Produktionsumgebungen, Microservices und Business-Apps, verwenden. Es gibt jedoch einen Kompromiss bei der Leistung.
-
Bare Metal (physische) Maschinen: Wenn Sie Hochleistungsrechner für daten- oder RAM-intensive Arbeitslasten benötigen, sollten Sie klassische Cluster mit Bare-Metal-Worker-Nodes erstellen. Da Sie die uneingeschränkte Kontrolle über die Isolation und die Ressourcenauslastung für Ihre Workloads besitzen, können Sie Bare-Metal-Maschinen einsetzen, um HIPAA- und PCI-Konformität für Ihre Umgebung zu erzielen. Mit Bare-Metal haben Sie direkten Zugriff auf die physischen Ressourcen auf der Maschine, wie z. B. Speicher oder CPU. Durch diese Konfiguration wird der Hypervisor der virtuellen Maschine entfernt, der physische Ressourcen zu virtuellen Maschinen zuordnet, die auf dem Host ausgeführt werden. Stattdessen sind alle Ressourcen einer Bare-Metal-Maschine ausschließlich dem Worker zugeordnet, sodass Sie sich keine Sorgen machen müssen, dass "verrauschte Nachbarn" Ressourcen gemeinsam nutzen oder die Leistung verlangsamen. Physische Typen verfügen über einen größeren lokalen Speicher als virtuelle und einige verfügen zur Steigerung der Datenverfügbarkeit zudem über RAID. Der lokale Speicher auf dem Arbeitsknoten dient nur zur kurzfristigen Verarbeitung, und die primären und zusätzlichen Festplatten werden gelöscht, wenn Sie den Arbeitsknoten aktualisieren oder neu laden. Physische Maschinen sind nur für klassische Cluster verfügbar und werden in VPC-Clustern nicht unterstützt.
Die Abrechnung für Bare-Metal-Server erfolgt monatlich. Wenn Sie einen Bare-Metal-Server vor Monatsende stornieren, werden Ihnen die Kosten bis zum Ende dieses Monats in Rechnung gestellt. Nachdem Sie einen Bare-Metal-Server bestellt oder storniert haben, wird der Prozess manuell in Ihrem Konto für die IBM Cloud-Infrastruktur ausgeführt. Die Ausführung kann daher länger als einen Geschäftstag dauern.
-
SDS-Maschinen: Software-defined Storage (SDS) Flavors verfügen über zusätzliche Raw Disks für physischen lokalen Speicher. Anders als die primäre und die lokale Hilfsfestplatte werden diese Raw Disks bei einer Aktualisierung oder einem Reload des Worker Nodes nicht gelöscht. Da sich die Daten auf derselben Maschine wie der Datenverarbeitungsknoten befinden, eignen sich SDS-Maschinen für Workloads mit hoher Leistungsanforderung. Softwaredefinierte Speichertypen sind nur für klassische Cluster verfügbar und werden in VPC-Clustern nicht unterstützt.
Da Sie die uneingeschränkte Kontrolle über die Isolation und die Ressourcenauslastung für Ihre Workloads besitzen, können Sie SDS-Maschinen einsetzen, um HIPAA- und PCI-Konformität für Ihre Umgebung zu erzielen.
Normalerweise verwenden Sie SDS-Maschinen in den folgenden Fällen:
- Wenn Sie ein SDS-Add-on wie Portworx verwenden, benutzen Sie eine SDS-Maschine.
- Wenn Ihre Anwendung eine StatefulSet ist, die lokalen Speicher benötigt, können Sie SDS-Maschinen verwenden und Kubernetes lokale persistente Volumes bereitstellen.
- Wenn Sie über angepasste Apps verfügen, die zusätzlichen unaufbereiteten lokalen Speicher erfordern.
-
-
Kosten: Im Allgemeinen eignen sich Ihre intensiven Arbeitslasten eher für die Ausführung auf physischen Bare-Metal-Maschinen, während Sie für kosteneffiziente Test- und Entwicklungsarbeiten virtuelle Maschinen auf gemeinsam genutzter oder dedizierter Hardware wählen könnten.
-
Standort: Entscheiden Sie, an welchen Standorten Sie einen Cluster haben möchten. Der Ort, an dem Sie sie benötigen, kann auch darüber Auskunft geben, wie viele Cluster oder welche Art von Clustern Sie benötigen. Wenn Sie z. B. wissen, dass der Ort in Montreal liegen muss, können Sie Ihre Auswahl einschränken. Sehen Sie sich die verfügbaren Standorte an.
-
Größe: Größere Knoten können kosteneffizienter sein als kleinere Knoten, insbesondere bei Arbeitslasten, die effizienter sind, wenn sie auf einer Hochleistungsmaschine verarbeitet werden. Wenn jedoch ein großer Arbeitsknoten ausfällt, müssen Sie sicher sein, dass Ihr Cluster über genügend Kapazität verfügt, um alle Workload-Pods sicher auf andere Arbeitsknoten im Cluster umzuplanen. Kleinere Arbeitsknoten können Ihnen helfen, sicher zu skalieren. Erfahren Sie mehr über Kapazität.
-
GPUs: Sie können eine GPU-Maschine verwenden, um die Verarbeitungszeit zu beschleunigen, die für rechenintensive Workloads wie KI, maschinelles Lernen, Inferencing und mehr erforderlich ist.
-
Speicher: Jede VM verfügt über eine angeschlossene Festplatte zur Speicherung von Informationen, die die VM zum Betrieb benötigt, wie z. B. das OS-Dateisystem, die Container-Laufzeit und die
kubelet. Der lokale Speicher auf dem Workerknoten ist nur für die kurzfristige Verarbeitung vorgesehen und die Speicherplatten werden gelöscht, wenn Sie den Workerknoten löschen, erneut laden, ersetzen oder aktualisieren. Darüber hinaus unterscheiden sich die klassische und die VPC-Infrastruktur in der Plattenkonfiguration.- Klassische VMs: Klassische VMs verfügen über zwei zugeordnete Platten. Die primäre Speicherplatte hat 25 GB für das OS-Dateisystem, und die zusätzliche Speicherplatte hat 100 GB für Daten wie die Container-Laufzeit und
die
kubelet. Aus Gründen der Zuverlässigkeit handelt es sich bei den primären und zusätzlichen Speichervolumes um lokale Festplatten und nicht um ein SAN (Storage Area Network). Zu den Vorteilen zählen ein höherer Durchsatz beim Serialisieren von Bytes für die lokale Festplatte und weniger Beeinträchtigungen des Dateisystems aufgrund von Netzausfällen. Die Hilfsplatte ist standardmäßig verschlüsselt. - VPC-Rechen-VMs: VPC-VMs haben eine primäre Festplatte, die ein Blockspeicher-Volume ist, das über das Netzwerk angeschlossen ist. Die Speicherschicht wird nicht von den anderen Netzebenen getrennt und sowohl der Netz-
als auch der Speicherdatenverkehr werden über dasselbe Netz weitergeleitet. Die primäre Speicherplatte wird zum Speichern von Daten wie dem Dateisystem des Betriebssystems, der Containerlaufzeit und dem
kubeletverwendet und ist standardmäßig verschlüsselt. Bei VPC-Clustern können Sie auch eine sekundäre Festplatte auf Ihren Worker-Knoten bereitstellen. Diese optionale Festplatte wird in Ihrem Konto bereitgestellt und Sie können sie in der VPC-Konsole sehen. Die Kosten für diese Disketten werden getrennt von den Kosten für die einzelnen Mitarbeiter berechnet und auf Ihrer Rechnung unter einem anderen Posten ausgewiesen. Diese sekundären Volumes werden ebenfalls auf die Kontingentnutzung für Ihr Konto angerechnet. Um standardmäßige Pod-Evakuierungen zu verhindern, werden 10 % der Datenplatte Kubernetes (Hilfsplatte in Classic, primäre Boot-Platte in VPC) für Systemkomponenten reserviert.
In einer statusabhängigen App spielen Daten eine wichtige Rolle, um Ihre App betriebsbereit zu halten. Stellen Sie sicher, dass Ihre Daten hoch verfügbar sind, sodass Sie nach einem möglichen Ausfall eine Wiederherstellung vornehmen können. In IBM Cloud Kubernetes Service können Sie aus mehreren Optionen auswählen, um Ihre Daten als persistent zu definieren. Sie können zum Beispiel NFS-Speicher bereitstellen, indem Sie native, persistente Kubernetes-Datenträger verwenden oder Ihre Daten mithilfe eines IBM Cloud-Datenbankservice speichern. Weitere Informationen finden Sie unter Planung hochverfügbarer Daten.
Wählen Sie ein Flavor oder einen Maschinentyp mit der richtigen Speicherkonfiguration, um Ihre Arbeitslast zu unterstützen. Einige Typen verfügen über eine Kombination aus den folgenden Platten und Speicherkonfigurationen. Beispielsweise können bestimmte Typen über eine SATA-Primärplatte mit einer unformatierten SSD-Sekundärplatte verfügen.
- Klassische VMs: Klassische VMs verfügen über zwei zugeordnete Platten. Die primäre Speicherplatte hat 25 GB für das OS-Dateisystem, und die zusätzliche Speicherplatte hat 100 GB für Daten wie die Container-Laufzeit und
die
Eine Liste der verfügbaren Flavors finden Sie unter VPC Gen 2 Flavors oder Classic Flavors.
Bestimmen der Arbeitsknotenkapazität für die Ressourcen
Um die Leistung Ihres Worker Nodes optimal zu nutzen, sollten Sie beim Einrichten Ihrer Ressourcen Folgendes beachten:
-
Überlegen Sie, was Ihre Anwendung macht: Beginnen Sie damit, die Größe der Anwendung mit der Kapazität einer der verfügbaren Worker-Node-Varianten abzustimmen. Berücksichtigen Sie auch, ob Ihre Anwendung große oder viele Bilder abruft, da diese lokalen Speicherplatz auf dem Worker-Node beanspruchen können.
-
Behalten Sie die Stärke Ihrer Kerne bei: Jede Maschine besitzt eine bestimmte Anzahl von Kernen. Legen Sie abhängig von der Workload Ihrer App eine Begrenzung für die Anzahl der Pods pro Kern fest, z. B. 10.
-
Vermeiden Sie eine Überlastung der Knoten: Halten Sie die Kapazität Ihres Arbeitsknotens bei etwa 75 %, um Platz für andere Pods zu schaffen, die möglicherweise geplant werden müssen. Wenn Ihre Apps mehr Ressourcen benötigen, als Sie auf Ihrem Workerknoten zur Verfügung haben, verwenden Sie einen anderen Workerknotentyp, der diese Anforderungen erfüllen kann. Legen Sie abhängig von der Workload Ihrer App eine Begrenzung für die Anzahl der Pods pro Knoten fest, z. B. 40.
-
Wählen Sie die Dienste aus: Wie viele Dienste haben Sie integriert, als Sie darüber nachdachten, wie viele Cluster Sie erstellen wollten? Diese integrierten Dienste und Add-ons können Pods erstellen, die Cluster-Ressourcen verbrauchen und beeinflussen.
-
Replikate Ihrer App: Um die Anzahl der gewünschten Workerknoten zu ermitteln, können Sie auch die Anzahl der Replikate Ihrer App berücksichtigen, die Sie ausführen möchten. Wenn Sie beispielsweise wissen, dass Ihre Workload 32 CPU-Kerne benötigt, und Sie planen, 16 Replikate Ihrer App auszuführen, benötigt jeder Replikat-Pod 2 CPU-Kerne. Wenn Sie pro Workerknoten nur eine App-Pod ausführen möchten, können Sie eine entsprechende Anzahl von Workerknoten für Ihren Clustertyp bestellen, um diese Konfiguration zu unterstützen.
-
Raum für Laufzeitanforderungen lassen: Worker-Knoten müssen bestimmte Mengen an CPU- und Speicherressourcen reservieren, um erforderliche Komponenten wie das Betriebssystem oder die Container-Laufzeit auszuführen.
Reservierte Kapazität und reservierte Instanzen werden nicht unterstützt.
Wählen Sie, wie viele Namensräume innerhalb des Clusters erstellt werden sollen
Richten Sie mehrere Namensbereiche ein, wenn Sie mehrere Teams und Projekte haben, die den Cluster gemeinsam nutzen. Namespaces sind eine Möglichkeit, Cluster-Ressourcen mit Hilfe von Ressourcenquoten und Standardgrenzen aufzuteilen. Wenn Sie neue Namensbereiche erstellen, achten Sie darauf, dass Sie die richtigen RBAC-Richtlinien für die Zugriffssteuerung einrichten. Weitere Informationen finden Sie unter Gemeinsame Nutzung eines Clusters mit Namespaces in der Dokumentation Kubernetes.
Wenn Sie einen kleinen Cluster haben, nur ein paar Dutzend Benutzer und einander ähnliche Ressourcen (wie z. B. verschiedene Versionen derselben Software), benötigen Sie wahrscheinlich keine Vielzahl an Namensbereichen. Stattdessen können Sie Bezeichnungen verwenden.
Lesen Sie die Sicherheitsinformationen zu dieser Entscheidung in Container Isolation und Sicherheit.
Festlegung von Ressourcenanforderungen und -grenzen für die Namensräume
Um sicherzustellen, dass jedes Team über die notwendigen Ressourcen für die Bereitstellung von Diensten und die Ausführung von Anwendungen im Cluster verfügt, müssen Sie für jeden Namespace Ressourcenquoten einrichten. Ressourcenquoten bestimmen die Bereitstellungsbeschränkungen, wie z. B. die Anzahl der Kubernetes Ressourcen, die Sie bereitstellen können, und die Menge an CPU und Speicher, die von diesen Ressourcen verbraucht werden kann. Nachdem Sie eine Beschränkung festgelegt haben, müssen Benutzer Ressourcenanforderungen und -begrenzungen in ihre Bereitstellungen aufnehmen.
Wenn Sie ein Deployment erstellen, schränken Sie es auch ein, damit der Pod Ihrer Anwendung nur auf Rechnern mit der besten Ressourcenmischung bereitgestellt wird. Sie können beispielsweise eine Datenbankanwendung auf eine Bare-Metal-Maschine
begrenzen, die einen großen lokalen Plattenspeicher hat, wie md1c.28x512.4x4tb.
Machen Sie auch Ihre Anwendungen hochverfügbar
Container und Pods sind per Definition Komponenten mit kurzer Lebensdauer, die kurzfristig und unerwartet ausfallen können. Ein Container oder Pod kann ausfallen, wenn ein Fehler in Ihrer App auftritt. Um Ihre Anwendung hochverfügbar zu machen, müssen Sie sicherstellen, dass Sie über genügend Instanzen verfügen, um die Arbeitslast zu bewältigen, sowie über zusätzliche Instanzen für den Fall eines Ausfalls. Sie können sicherstellen, dass genügend Instanzen vorhanden sind, indem Sie automatische Skalierung einrichten.
Nächste Schritte
Um mit der Planung fortzufahren, wählen Sie zwischen VPC-Cluster-Vernetzung und Classic-Cluster-Vernetzung. Wenn Sie bereit sind, einen Cluster zu erstellen, beginnen Sie zunächst mit Vorbereitung Ihres Kontos für die Erstellung von Clustern.