|
| 1 | +--- |
| 2 | +reviewers: |
| 3 | +- lavalamp |
| 4 | +title: Überlegungen für große Cluster |
| 5 | +weight: 10 |
| 6 | +--- |
| 7 | + |
| 8 | +Ein Cluster ist ein Satz von {{< glossary_tooltip text="Nodes" term_id="node" >}} (physikalisch oder virtuell), auf denen Kubernetes-Agents laufen. |
| 9 | +Diese ermöglichen es der Kubernetes-{{< glossary_tooltip text="Control Plane" term_id="control-plane" >}}, die Nodes zu steuern. |
| 10 | +Kubernetes {{< param "version" >}} unterstützt Cluster mit bis zu 5000 Nodes. Genauer gesagt ist Kubernetes auf folgende Konfigurationen ausgelegt: |
| 11 | + |
| 12 | +- Nicht mehr als 110 Pods pro Node |
| 13 | +- Nicht mehr als 5000 Nodes |
| 14 | +- Nicht mehr als 150000 Pods insgesamt |
| 15 | +- Nicht mehr als 300000 Container insgesamt |
| 16 | + |
| 17 | +Ein Cluster kann skaliert werden, indem weitere Nodes hinzugefügt werden. Wie man Nodes hinzufügen kann, hängt von der Art und Weise ab, wie das Cluster initial aufgesetzt wurde. |
| 18 | + |
| 19 | + |
| 20 | +## Ressourcenlimits von Cloud-Providern {#quota-issues} |
| 21 | + |
| 22 | +Um Probleme mit Quota von Cloud-Providern zu vermeiden, sollten Sie bei der Erstellung eines Clusters mit vielen Nodes Folgendes in Betracht ziehen: |
| 23 | + |
| 24 | +- Beantragen Sie eine Erhöhung der Quota für Cloud-Ressourcen wie: |
| 25 | + - Compute-Instanzen |
| 26 | + - CPUs |
| 27 | + - Speichervolumes |
| 28 | + - Verwendete IP-Adressen |
| 29 | + - Regelwerke zur Paketfilterung |
| 30 | + - Anzahl der Load Balancer |
| 31 | + - Netzwerk-Subnetze |
| 32 | + - Log-Streams |
| 33 | +- Skalierungsaktionen in Batches durchzuführen, mit einer Pause zwischen den Batches, da einige Cloud-Provider die Erstellung neuer Instanzen mit Rate Limits versehen. |
| 34 | + |
| 35 | +## Komponenten der Control Plane |
| 36 | + |
| 37 | +Für ein großes Cluster benötigen Sie eine Control Plane mit ausreichenden Rechen- und weiteren Ressourcen. |
| 38 | + |
| 39 | +Typischerweise betreiben Sie eine oder zwei Control-Plane-Instanzen pro Ausfallzone, wobei Sie diese Instanzen zunächst vertikal skalieren und anschließend horizontal erweitern, wenn vertikale Skalierung keine Verbesserungen mehr bringt. |
| 40 | + |
| 41 | +Sie sollten mindestens eine Instanz pro Ausfallzone betreiben, um Fehlertoleranz zu gewährleisten. |
| 42 | +Kubernetes-Nodes leiten den Datenverkehr nicht automatisch zu Control-Plane-Endpunkten in derselben Ausfallzone um; allerdings könnte Ihr Cloud-Provider eigene Mechanismen hierfür anbieten. |
| 43 | + |
| 44 | +Beispielsweise können Sie mit einem Managed Load Balancer den Datenverkehr, der von Kubelets und Pods in der Ausfallzone _A_ stammt, so konfigurieren, dass er nur an die Control-Plane-Hosts in Zone _A_ weitergeleitet wird. |
| 45 | +Fällt ein einzelner Control-Plane-Host oder ein Endpunkt in Zone _A_ aus, bedeutet das, dass der gesamte Control-Plane-Datenverkehr der Nodes in Zone _A_ nun zwischen den Zonen geleitet wird. |
| 46 | +Mehrere Control-Plane-Hosts in jeder Zone reduzieren die Wahrscheinlichkeit dieses Szenarios. |
| 47 | + |
| 48 | +### etcd-Speicher |
| 49 | + |
| 50 | +Um die Leistung großer Cluster zu verbessern, können Sie Event-Objekte in einer separaten, dedizierten etcd-Instanz speichern. |
| 51 | + |
| 52 | +Bei der Erstellung eines Clusters können Sie (mit benutzerdefinierten Tools): |
| 53 | + |
| 54 | +- eine zusätzliche etcd-Instanz starten und konfigurieren |
| 55 | +- den {{< glossary_tooltip term_id="kube-apiserver" text="API-Server" >}} so konfigurieren, dass er diese Instanz zur Speicherung von Ereignissen nutzt |
| 56 | + |
| 57 | +Siehe [Betrieb von etcd-Clustern für Kubernetes](/docs/tasks/administer-cluster/configure-upgrade-etcd/) und |
| 58 | +[Einrichten eines hochverfügbaren etcd-Clusters mit kubeadm](/docs/setup/production-environment/tools/kubeadm/setup-ha-etcd-with-kubeadm/) für Details zur Konfiguration und Verwaltung von etcd für große Cluster. |
| 59 | + |
| 60 | +## Addon-Ressourcen |
| 61 | + |
| 62 | +Kubernetes-[Ressourcenlimits](/docs/concepts/configuration/manage-resources-containers/) helfen dabei, die Auswirkungen von Speicherlecks und anderer Probleme zu minimieren, |
| 63 | +bei denen Pods und Container andere Komponenten beeinträchtigen können. |
| 64 | + |
| 65 | +Diese Ressourcenlimits gelten auch für {{< glossary_tooltip text="Addons" term_id="addons" >}} ebenso wie für Anwendungs-Workloads. |
| 66 | + |
| 67 | +Beispielsweise können Sie CPU- und Speicherlimits für eine Logging-Komponente festlegen: |
| 68 | + |
| 69 | +```yaml |
| 70 | + ... |
| 71 | + containers: |
| 72 | + - name: fluentd-cloud-logging |
| 73 | + image: fluent/fluentd-kubernetes-daemonset:v1 |
| 74 | + resources: |
| 75 | + limits: |
| 76 | + cpu: 100m |
| 77 | + memory: 200Mi |
| 78 | +``` |
| 79 | +
|
| 80 | +Die Standardlimits von Addons basieren in der Regel auf Daten, die aus dem Betrieb auf kleinen oder mittleren Kubernetes-Clustern gesammelt wurden. |
| 81 | +Bei großen Clustern verbrauchen Addons oft mehr Ressourcen als ihre Standardlimits. |
| 82 | +Wenn ein großer Cluster ohne Anpassung dieser Werte bereitgestellt wird, können Addons kontinuierlich beendet werden, da sie ihr Speicherlimit überschreiten. |
| 83 | +Alternativ laufen die Addons zwar, liefern aber eine schlechte Performance aufgrund von CPU-Zeit-Slice-Beschränkungen. |
| 84 | +
|
| 85 | +Um Probleme mit Addon-Ressourcen in großen Clustern zu vermeiden, sollten Sie Folgendes beachten: |
| 86 | +
|
| 87 | +- Einige Addons skalieren vertikal – es gibt eine Replik des Addons für das Cluster oder für eine gesamte Ausfallzone. Für diese Addons sollten Sie Anfragen und Limits erhöhen, wenn Sie Ihr Cluster erweitern. |
| 88 | +- Viele Addons skalieren horizontal – Sie erhöhen die Kapazität, indem Sie mehr Pods ausführen – aber bei einem sehr großen Cluster müssen Sie möglicherweise auch die CPU- oder Speicherlimits leicht anheben. Der [Vertical Pod Autoscaler](https://github.com/kubernetes/autoscaler/tree/master/vertical-pod-autoscaler#readme) kann im *Recommender*-Modus ausgeführt werden, um empfohlene Werte für Anfragen und Limits bereitzustellen. |
| 89 | +- Einige Addons laufen als eine Instanz pro Node, gesteuert durch ein {{< glossary_tooltip text="DaemonSet" term_id="daemonset" >}}, z. B. ein Node-level Log-Aggregator. Ähnlich wie bei horizontal skalierten Addons müssen Sie eventuell CPU- oder Speicherlimits leicht erhöhen. |
| 90 | +
|
| 91 | +## {{% heading "whatsnext" %}} |
| 92 | +
|
| 93 | +- `VerticalPodAutoscaler` ist eine benutzerdefinierte Ressource, die Sie in Ihr Cluster deployen können, um Ressourcenanforderungen und Limits für Pods zu verwalten. |
| 94 | +Erfahren Sie mehr über den [Vertical Pod Autoscaler](https://github.com/kubernetes/autoscaler/tree/master/vertical-pod-autoscaler#readme) und wie Sie ihn nutzen können, |
| 95 | +um Cluster-Komponenten einschließlich clusterkritischer Addons zu skalieren. |
| 96 | + |
| 97 | +- Lesen Sie mehr über [Node-Autoscaling](/docs/concepts/cluster-administration/node-autoscaling/) |
| 98 | + |
| 99 | +- [Addon Resizer](https://github.com/kubernetes/autoscaler/tree/master/addon-resizer#readme) unterstützt Sie dabei, die Addons automatisch an die Clustergröße anzupassen. |
0 commit comments