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 Hochverfügbarkeit Ihres Clusters zu erhöhen und Ihre Anwendung vor Ausfallzeiten zu schützen, falls 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: Die Verwaltung mehrerer Cluster ist in der Regel komplexer, kann Ihnen jedoch 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-Knoten in einem Cluster benötigen, können Sie die Konfiguration auf mehrere Cluster mit weniger Knoten aufteilen oder Bare-Metal-Knoten 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 drei Zonen in Multizonen-Clustern können Sie die Verfügbarkeit Ihrer Anwendung erhöhen, indem Sie drei Cluster über verschiedene Zonen hinweg einrichten.
- Senken Sie Ihre Kosten, indem Sie kleinere Maschinen erwerben, die Ihre Arbeitslast bewältigen können.
-
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 über einen einzigen Cluster verfügen, ist es umso wichtiger, dass Sie Ihren Cluster mithilfe von Namespaces, 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
Classic 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. Sollte eine gesamte Region ausfallen, 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
Classic 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 die Einrichtung eines Multizonen-Clusters in Betracht ziehen.
Einzelzonencluster
Classic
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 so erstellt wurde, dass sich alle Worker-Knoten in einer einzigen Zone befinden, ist der Kubernetes-Master Ihres klassischen Clusters hochverfügbar und umfasst separate physische Hosts für Ihren Master-API-Server, den etcd, den Scheduler und den Controller-Manager, um vor Ausfällen zu schützen, beispielsweise während eines Master-Updates. 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 die Worker-Knoten 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, hängt von den Entscheidungen ab, die Sie hinsichtlich der Anzahl der Cluster und der Standorte getroffen haben.
- VPC-Cluster (empfohlen)
- Worker-Knoten werden als virtuelle Serverinstanzen auf der VPC-Infrastruktur bereitgestellt. VPC ist der empfohlene Infrastrukturtyp für neue Cluster. Es bietet standardmäßig Netzwerkisolierung und unterstützt die neuesten Funktionen von „ IBM Cloud Kubernetes Service “, darunter dedizierte Hosts und „Secure by Default“.
- Satellite-Cluster
- Worker-Knoten werden in Ihrer eigenen Infrastruktur bereitgestellt, einschließlich lokaler Hardware oder virtueller Maschinen bei anderen Cloud-Anbietern wie AWS, Azure und GCP. Verwenden Sie „ Satellite “, wenn Sie von „ IBM Cloud “ verwaltete Cluster außerhalb der Rechenzentren von „ IBM Cloud “ betreiben möchten.
- Klassische Cluster
- Worker-Knoten werden auf virtuellen Maschinen oder Bare-Metal-Servern in der klassischen Infrastruktur v IBM Cloud bereitgestellt. Verwenden Sie „Classic“, wenn Sie Bare-Metal-Worker-Knoten, Software-Defined-Storage-Varianten (SDS) oder Verbindungen zu bestehenden Ressourcen der klassischen Infrastruktur benötigen.
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.
Migration auf ein neues Betriebssystem? Siehe Migration auf eine neue Version von Ubuntu.
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 Konfiguration bei einem Ausfall eines Worker-Knotens schützen, indem Sie mehrere Worker-Knoten in Ihrem Cluster einrichten. Zu den Ausfällen von Worker-Knoten können Hardwareausfälle wie Strom-, Kühlungs- oder Netzwerkausfälle sowie Probleme auf dem VM selbst gehören.
-
Cluster mit mehreren Zonen: ClassicVPC Planen Sie mindestens zwei Worker-Knoten pro Zone ein, also insgesamt sechs Knoten über drei Zonen verteilt. 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.
-
Cluster mit einer Zone: Planen Sie mindestens drei Worker-Knoten 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-Knoten verfügbar sind, können Sie möglicherweise die Anzahl der Pods begrenzen, die Sie auf einem Worker-Knoten bereitstellen.
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 Worker-Knoten und Pods.
Worker-Node-Varianten auswählen
Ein Worker-Knoten ist ein VM, der auf physischer Hardware ausgeführt wird. 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 möglicherweise mit Ihrer Rechtsabteilung in Verbindung setzen, um den Grad der Infrastrukturisolierung und die Compliance-Anforderungen zu besprechen, die Ihre Anwendungsumgebung erfordert.
- Gemeinsam genutzt: Physische Ressourcen wie CPU und Arbeitsspeicher werden von allen virtuellen Maschinen gemeinsam genutzt, die auf derselben physischen Hardware bereitgestellt sind. 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. Allerdings gibt es dabei Leistungseinbußen.
-
Bare-Metal-Maschinen (physische Maschinen): Wenn Sie Hochleistungsrechner für daten- oder RAM-intensive Workloads benötigen, sollten Sie die Einrichtung von Clustern mit Bare-Metal-Worker-Knoten in Betracht ziehen. 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 Worker-Knoten dient ausschließlich der kurzfristigen Verarbeitung, und die Haupt- und Zusatzfestplatten werden gelöscht, wenn Sie den Worker-Knoten aktualisieren oder neu laden. Für klassische Cluster und für VPC-Bare-Metal-Konfigurationen stehen Bare-Metal-Mitarbeiter zur Verfügung. Für Classic-Bare-Metal-Worker verwenden Sie
worker updatefür ein Update auf die Master-Minor-Version oderworker reloadfür ein Reimage auf den neuesten Patch der aktuellen Worker-Knoten-Version. Beachten Sie, dass für VPC-Worker-Knoten, einschließlich VPC-Bare-Metal, nicht unterstütztworker updatewird. Verwenden Sie für alle VPC-Worker-Knoten,worker replace --updateum auf die Nebenversion des Masters zu aktualisieren.Die Abrechnung für Bare-Metal-Worker-Knoten variiert je nach Infrastrukturtyp. Klassische Bare-Metal-Server werden monatlich abgerechnet. Wenn Sie einen klassischen Bare-Metal-Server vor Monatsende kündigen, werden Ihnen die Kosten bis zum Ende dieses Monats in Rechnung gestellt. Nachdem Sie einen klassischen Bare-Metal-Server bestellt oder storniert haben, wird der Vorgang manuell in Ihrem „ IBM Cloud “-Infrastrukturkonto abgeschlossen, sodass dies mehr als einen Werktag in Anspruch nehmen kann. VPC-Bare-Metal-Server werden stundenweise abgerechnet, ohne Mindestvertragslaufzeit.
-
SDS-Maschinen: Software-defined Storage (SDS) Flavors verfügen über zusätzliche Raw Disks für physischen lokalen Speicher. Im Gegensatz zur primären und zur sekundären lokalen Festplatte werden diese Raw-Festplatten bei einer Aktualisierung oder einem Neustart des Worker-Knotens 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, nutzen Sie eine SDS-Maschine. * Wenn es sich bei Ihrer App um eine StatefulSet handelt, die lokalen Speicher benötigt, können Sie SDS-Maschinen verwenden und lokale persistente Volumes über Kubernetes bereitstellen. * Wenn Sie über angepasste Apps verfügen, die zusätzlichen unaufbereiteten lokalen Speicher erfordern.
-
-
Kosten: Im Allgemeinen eignen sich Ihre rechenintensiven Workloads besser für den Betrieb auf physischen Bare-Metal-Servern, während Sie für kostengünstige Test- und Entwicklungsaufgaben möglicherweise virtuelle Maschinen auf gemeinsam genutzter oder dedizierter Hardware wählen sollten.
-
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.
-
Umfang: Größere Knoten können kosteneffizienter sein als kleinere Knoten, insbesondere bei Workloads, die darauf ausgelegt sind, bei der Verarbeitung auf einem Hochleistungsrechner an Effizienz zu gewinnen. Sollte jedoch ein großer Worker-Knoten ausfallen, müssen Sie sicherstellen, dass Ihr Cluster über genügend Kapazität verfügt, um alle Workload-Pods sicher auf andere Worker-Knoten im Cluster umzuverteilen. Kleinere Arbeitsknoten können Ihnen helfen, sicher zu skalieren. Erfahren Sie mehr zum Thema 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: Jeder VM verfügt über eine angehängte Festplatte zur Speicherung von Informationen, die der VM zum Ausführen benötigt, wie z. B. das Betriebssystem-Dateisystem, die Container-Laufzeitumgebung 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 Speicherfestplatte verfügt über 25 GB für das Dateisystem des Betriebssystems, und die zusätzliche Speicherfestplatte bietet 100 GB für
Daten wie die Container-Laufzeitumgebung und die
kubelet. Aus Gründen der Zuverlässigkeit handelt es sich bei den primären und sekundären Speichervolumes um lokale Festplatten anstelle eines Storage Area Network (SAN). 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 Zusatzfestplatte ist standardmäßig verschlüsselt. - VPC-Rechen-VMs: VPC-VMs verfügen über eine primäre Festplatte, bei der es sich um ein Blockspeichervolumen handelt, das über das Netzwerk angebunden 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 wurde in Ihrem Konto bereitgestellt und ist in der VPC-Konsole einsehbar. 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. Auch diese sekundären Volumina werden auf die Kontingentnutzung Ihres Kontos angerechnet. Um eine automatische Pod-Entfernung zu verhindern, werden 10 % der Datenfestplatte von Kubernetes (Zusatzfestplatte in Classic, primäre Boot-Festplatte 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 eine Instanz 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 Speicherfestplatte verfügt über 25 GB für das Dateisystem des Betriebssystems, und die zusätzliche Speicherfestplatte bietet 100 GB für
Daten wie die Container-Laufzeitumgebung und die
Eine Liste der verfügbaren Flavors finden Sie unter VPC-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 App große oder viele Bilder abruft, da diese Speicherplatz auf dem lokalen Speicher des Worker-Knotens 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 Auslastung Ihres Worker-Knotens bei etwa 75 %, um Platz für andere Pods zu lassen, die möglicherweise eingeplant 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 starten, die Cluster-Ressourcen beanspruchen 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äten 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 Cluster mit Namespaces freigeben in der Dokumentation zu 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 erforderlichen Ressourcen verfügt, um Dienste bereitzustellen und Anwendungen im Cluster auszuführen, müssen Sie für jeden Namespace Ressourcenkontingente einrichten. Ressourcenkontingente legen die Bereitstellungsbeschränkungen fest, wie beispielsweise die Anzahl der Kubernetes-Ressourcen, die Sie bereitstellen können, sowie die Menge an CPU-Leistung und Arbeitsspeicher, die von diesen Ressourcen beansprucht werden darf. Nachdem Sie eine Beschränkung festgelegt haben, müssen Benutzer Ressourcenanforderungen und -begrenzungen in ihre Bereitstellungen aufnehmen.
Wenn Sie eine Bereitstellung erstellen, schränken Sie diese so ein, dass der Pod Ihrer App nur auf Maschinen mit der optimalen Ressourcenkombination 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 eine hohe Verfügbarkeit Ihrer App zu gewährleisten, 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.
Laufende Best Practices
Befolgen Sie diese bewährten Vorgehensweisen, nachdem Ihr Cluster in Betrieb genommen wurde, um dessen Sicherheit und einwandfreien Betrieb zu gewährleisten.
Halten Sie Ihre Cluster-Umgebung auf dem neuesten Stand
Prüfen Sie einmal im Monat auf verfügbare Sicherheits- und Betriebssystempatches, um Ihre Workerknoten zu aktualisieren. Achten Sie darauf, Ihren Cluster regelmäßig zu aktualisieren, um stets eine unterstützte Version von Kubernetes Service zu nutzen.
Halten Sie Ihre Befehlszeilentools auf dem neuesten Stand
Sie werden über die Befehlszeile benachrichtigt, wenn Aktualisierungen für die CLI (ibmcloud) und entsprechende Plug-ins verfügbar sind. Achten Sie darauf, Ihre CLI auf dem neuesten Stand zu halten, damit Sie alle verfügbaren
Befehle und Optionen nutzen können.
Stellen Sie sicher, dass die Kubernetes-Version Ihres kubectl-CLI-Clients mit der Kubernetes-Version Ihres Cluster-Servers übereinstimmt. Kubernetes unterstützt keine kubectl Client-Versionen, die zwei oder mehr Versionen von der Server-Version abweichen (n ± 2).
Wechseln Sie Ihre CA-Zertifikate regelmäßig aus
Aus Sicherheitsgründen wird eine regelmäßige Erneuerung der Zertifikate der Zertifizierungsstelle (CA) empfohlen. Da die Schritte zur CA-Rotation das Neuladen oder Ersetzen von Worker-Knoten umfassen, sollten Sie bei jeder Aktualisierung Ihrer Worker-Knoten eine Rotation der CA-Zertifikate in Betracht ziehen. Weitere Informationen finden Sie unter Rotation von CA-Zertifikaten in Ihrem Cluster.
Dokumentieren Sie Ihre Umgebungsarchitektur
Aktuelle Dokumentationen und Diagramme können bei der Fehlerbehebung hilfreich sein. Weitere Informationen finden Sie unter Dokumentation Ihrer Umgebungsarchitektur.
Abonnieren Sie Updates zu den Versionshinweisen
Sie können die Versionshinweise zur Dokumentation für IBM Cloud Kubernetes Service per RSS abonnieren. Weitere Informationen finden Sie in den Versionshinweisen.
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.