Skip to content

Commit e5b884d

Browse files
committed
localize best practice big cluster page
Signed-off-by: Noah Ispas (iamNoah1) <[email protected]>
1 parent 38fe295 commit e5b884d

File tree

1 file changed

+100
-0
lines changed

1 file changed

+100
-0
lines changed
Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
---
2+
reviewers:
3+
- davidopp
4+
- lavalamp
5+
title: Überlegungen für große Cluster
6+
weight: 10
7+
---
8+
9+
Ein Cluster ist ein Satz von {{< glossary\_tooltip text="Nodes" term\_id="node" >}} (physikalisch oder virtuell), auf denen Kubernetes-Agents laufen.
10+
Diese ermöglichen es der Kubernetes-{{< glossary\_tooltip text="Control Plane" term\_id="control-plane" >}}, die Nodes zu steuern.
11+
Kubernetes {{< param "version" >}} unterstützt Cluster mit bis zu 5000 Nodes. Genauer gesagt ist Kubernetes auf folgende Konfigurationen ausgelegt:
12+
13+
- Nicht mehr als 110 Pods pro Node
14+
- Nicht mehr als 5000 Nodes
15+
- Nicht mehr als 150000 Pods insgesamt
16+
- Nicht mehr als 300000 Container insgesamt
17+
18+
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.
19+
20+
21+
## Ressourcenlimits von Cloud-Providern {#quota-issues}
22+
23+
Um Probleme mit Quota von Cloud-Providern zu vermeiden, sollten Sie bei der Erstellung eines Clusters mit vielen Nodes Folgendes in Betracht ziehen:
24+
25+
- Beantragen Sie eine Erhöhung der Quota für Cloud-Ressourcen wie:
26+
- Compute-Instanzen
27+
- CPUs
28+
- Speichervolumes
29+
- Verwendete IP-Adressen
30+
- Regelwerke zur Paketfilterung
31+
- Anzahl der Load Balancer
32+
- Netzwerk-Subnetze
33+
- Log-Streams
34+
- Skalierungsaktionen in Batches durchzuführen, mit einer Pause zwischen den Batches, da einige Cloud-Provider die Erstellung neuer Instanzen mit Rate Limits versehen.
35+
36+
## Komponenten der Control Plane
37+
38+
Für ein großes Cluster benötigen Sie eine Control Plane mit ausreichenden Rechen- und weiteren Ressourcen.
39+
40+
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.
41+
42+
Sie sollten mindestens eine Instanz pro Ausfallzone betreiben, um Fehlertoleranz zu gewährleisten.
43+
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.
44+
45+
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.
46+
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.
47+
Mehrere Control-Plane-Hosts in jeder Zone reduzieren die Wahrscheinlichkeit dieses Szenarios.
48+
49+
### etcd-Speicher
50+
51+
Um die Leistung großer Cluster zu verbessern, können Sie Event-Objekte in einer separaten, dedizierten etcd-Instanz speichern.
52+
53+
Bei der Erstellung eines Clusters können Sie (mit benutzerdefinierten Tools):
54+
55+
- eine zusätzliche etcd-Instanz starten und konfigurieren
56+
- den {{< glossary\_tooltip term\_id="kube-apiserver" text="API-Server" >}} so konfigurieren, dass er diese Instanz zur Speicherung von Ereignissen nutzt
57+
58+
Siehe [Betrieb von etcd-Clustern für Kubernetes](/docs/tasks/administer-cluster/configure-upgrade-etcd/) und
59+
[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.
60+
61+
## Addon resources
62+
63+
Kubernetes [resource limits](/docs/concepts/configuration/manage-resources-containers/)
64+
help to minimize the impact of memory leaks and other ways that pods and containers can
65+
impact on other components. These resource limits apply to
66+
{{< glossary_tooltip text="addon" term_id="addons" >}} resources just as they apply to application workloads.
67+
68+
For example, you can set CPU and memory limits for a logging component:
69+
70+
```yaml
71+
...
72+
containers:
73+
- name: fluentd-cloud-logging
74+
image: fluent/fluentd-kubernetes-daemonset:v1
75+
resources:
76+
limits:
77+
cpu: 100m
78+
memory: 200Mi
79+
```
80+
81+
Die Standardlimits von Addons basieren in der Regel auf Daten, die aus dem Betrieb auf kleinen oder mittleren Kubernetes-Clustern gesammelt wurden.
82+
Bei großen Clustern verbrauchen Addons oft mehr Ressourcen als ihre Standardlimits.
83+
Wenn ein großer Cluster ohne Anpassung dieser Werte bereitgestellt wird, können Addons kontinuierlich beendet werden, da sie ihr Speicherlimit überschreiten.
84+
Alternativ laufen die Addons zwar, liefern aber eine schlechte Performance aufgrund von CPU-Zeit-Slice-Beschränkungen.
85+
86+
Um Probleme mit Addon-Ressourcen in großen Clustern zu vermeiden, sollten Sie Folgendes beachten:
87+
88+
- 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.
89+
- 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.
90+
- 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.
91+
92+
## {{% heading "whatsnext" %}}
93+
94+
- `VerticalPodAutoscaler` ist eine benutzerdefinierte Ressource, die Sie in Ihr Cluster deployen können, um Ressourcenanforderungen und Limits für Pods zu verwalten.
95+
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,
96+
um Cluster-Komponenten einschließlich clusterkritischer Addons zu skalieren.
97+
98+
- Lesen Sie mehr über [Node-Autoscaling](/docs/concepts/cluster-administration/node-autoscaling/)
99+
100+
- [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

Comments
 (0)