Reserven für Workerknotenressourcen
Wenn Sie die Ressourcenreserven der Worker-Knoten kennen, können Sie die Clusterkapazität besser planen und Probleme bei der Pod-Einplanung beheben.
IBM Cloud Kubernetes Service legt Reserven für Datenverarbeitungsressourcen fest, die die verfügbaren Datenverarbeitungsressourcen auf den einzelnen Workerknoten begrenzen. Reservierter Speicher, CPU-Ressourcen und Prozess-IDs (PIDs) können nicht von Pods auf dem Workerknoten verwendet werden und reduzieren die zuordnungsfähigen Ressourcen auf jedem Workerknoten. Wenn Sie ursprünglich Pods bereitstellen, der Workerknoten aber nicht über ausreichend zuordnungsfähige Ressourcen verfügt, schlägt die Bereitstellung fehl. Darüber hinaus werden Pods entfernt, die die Ressourcengrenze des Workerknotens für Arbeitsspeicher und CPU überschreiten. In „ Kubernetes “ wird dieser Grenzwert als „hard eviction threshold“ bezeichnet. Den Pods, die den PID-Grenzwert überschreiten, wird die zulässige Anzahl von PIDs zugeordnet, es erfolgt jedoch keine Räumung auf der Basis der PIDs.
Wann sollten die Ressourcenreserven überprüft werden?
Überprüfen Sie die Ressourcenreserven der Worker-Knoten, wenn:
- Planung der Clusterkapazität und Ermittlung der benötigten Anzahl an Worker-Knoten
- Fehlerbehebung bei Fehlern bei der Pod-Planung oder bei Pod-Entfernungen
- Berechnung der verfügbaren Ressourcen für Ihre Workloads
- Feststellen, ob Sie Ihrem Cluster weitere Worker-Knoten hinzufügen müssen
Wenn weniger PIDs, CPU-Leistung oder Arbeitsspeicher verfügbar sind, als der Worker-Knoten reserviert hat, beginnt „ Kubernetes “, Pods zu entfernen, um wieder ausreichende Rechenressourcen und PIDs bereitzustellen. Wenn ein anderer Workerknoten verfügbar ist, wird die Planung für die Pods auf diesem Workerknoten neu erstellt. Wenn Ihre Pods häufig beendet werden, fügen Sie Ihrem Cluster weitere Worker-Knoten hinzu oder legen Sie Ressourcenbeschränkungen für Ihre Pods fest.
Die verschiedenen Stufen der Ressourcenreserven verstehen
Die auf Ihrem Worker-Knoten reservierten Ressourcen hängen von der Anzahl der PIDs, der CPU-Leistung und dem Arbeitsspeicher ab, über die Ihr Worker-Knoten verfügt. Unter IBM Cloud Kubernetes Service sind die PID-, CPU- und Arbeitsspeicherstufen wie in den folgenden Tabellen dargestellt definiert. Wenn Ihr Worker-Knoten über Rechenressourcen in mehreren Stufen verfügt, wird für jede Stufe ein bestimmter Prozentsatz Ihrer PIDs, CPU- und Speicherressourcen reserviert.
Cluster verfügen auch über PID-Reservierungen und -Grenzwerte, um zu verhindern, dass ein Pod zu viele PIDs verwendet, oder um sicherzustellen, dass genügend PIDs für die kubelet und andere IBM Cloud Kubernetes Service-Systemkomponenten
vorhanden sind. Wenn die PID-Reservierungen oder -Grenzwerte ausgeschöpft sind, werden von Kubernetes keine weiteren PIDs erstellt oder zugeordnet, bis Prozesse entfernt wurden, um vorhandene PIDs freizugeben. Die Gesamtmenge der PIDs in einem
Workerknoten entspricht ungefähr 8.000 PIDs pro GB Speicher im Workerknoten. Beispiel: Ein Workerknoten mit 16 GB Speicher verfügt über ca. 128.000 PIDs (16 × 8,000 = 128,000).
Um zu überprüfen, wie viele Rechenressourcen derzeit auf Ihrem Worker-Knoten genutzt werden, führen Sie folgenden Befehl aus kubectl top node.
| Speicherebene | % oder reservierte Menge | b3c.4x16-Workerknoten (16 GB), Beispiel |
mg1c.28x256 Workerknoten (256 GB), Beispiel |
|---|---|---|---|
| Erste 4 GB (0 - 4 GB) | 25 % des Speichers | 1 GB | 1 GB |
| Nächste 4 GB (5 - 8 GB) | 20 % des Speichers | 0,8 GB | 0,8 GB |
| Nächste 8 GB (9 - 16 GB) | 10 % des Speichers | 0,8 GB | 0,8 GB |
| Nächste 112 GB (17 - 128 GB) | 6 % des Speichers | Nicht zutreffend | 6,72 GB |
| Verbleibende GB (129 GB+) | 2 % des Speichers | Nicht zutreffend | 2,54 GB |
Zusätzliche Reserve für kubelet Räumung |
100 MB | 100 MB (unstrukturierte Menge) | 100 MB (unstrukturierte Menge) |
| Insgesamt reserviert | (variiert) | 2,7 GB von insgesamt 16 GB | 11,96 GB von insgesamt 256 GB |
| CPU-Ebene | % oder reservierte Menge | Beispiel für b3c.4x16-Workerknoten (vier Kerne) |
mg1c.28x256 Workerknoten (28 Cores), Beispiel |
|---|---|---|---|
| Erster Core (Core 1) | 6 % Cores | 0,06 Cores | 0,06 Cores |
| Nächste zwei Cores (Cores 2 - 3) | 1 % Cores | 0,02 Cores | 0,02 Cores |
| Nächste zwei Cores (Cores 4 - 5) | 0,5 % Cores | 0,005 Cores | 0,01 Cores |
| Verbleibende Cores (Cores 6+) | 0,25 % Cores | Nicht zutreffend | 0,0575 Cores |
| Insgesamt reserviert | (variiert) | 0,085 Cores von insgesamt vier Cores | 0,1475 Cores von insgesamt 28 Cores |
| PIDs gesamt | % reserviert | % verfügbar für Pod |
|---|---|---|
| < 200.000 | 20 % der PIDs | 35 % der PIDs |
| 200.000 – 499.999 | 10 % der PIDs | 40 % der PIDs |
| ≥ 500.000 | 5 % der PIDs | 45 % der PIDs |
b3c.4x16-Workerknoten: 126.878 PIDs |
25.376 PIDs (20 %) | 44.407 PIDs (35 %) |
mg1c.28x256-Workerknoten: 2.062.400 PIDs |
103.120 PIDs (5 %) | 928.085 PIDs (45 %) |
| Infrastrukturprovider | Platte | % der reservierten Platte |
|---|---|---|
| Klassisch | Sekundäre Platten | 10 % |
| VPC | Bootplatte | 10 % |
Die angegebenen Stichprobenwerte für Workerknoten dienen nur als Beispiel. Die tatsächliche Nutzung kann abweichen.