Kubernetes bietet verschiedene Möglichkeiten, die Anzahl der Ressourcen zu steuern, die einzelne Container konsumieren können. Eine wichtige Möglichkeit, die Anzahl der von einzelnen Containern verwendeten Ressourcen zu begrenzen. Dieser Artikel beschreibt die Ereignisrate -Grenzen und die Verwendung dieser Funktion, um den Ressourcenverbrauch für Ihre auf Kubernetes ausgeführten Anwendungen zu begrenzen.
Was ist die Ereignisrate -Grenze in Kubernetes??
Die Ereignisrate -Grenzwerte sind eine Möglichkeit, die Rate zu steuern, mit der die Pods Ihrer Anwendung zusätzliche CPU und Speicher auf einem Cluster verbrauchen können. Wenn beispielsweise eine Anfrage zum Senden von Daten an den Dienst zu schnell zum Backend kommt (e.G., Zehn Anfragen pro Sekunde) blockiert ein Zinsbegrenzer die Anfrage, bis die vorherige Anfrage bearbeitet wurde. Wenn einer Ihrer Schoten versucht, dieses Limit zu überschreiten, indem Sie mehr als drei Anfragen pro Sekunde anfordern, wird diese abgelehnt. Auf diese Weise können Ihre Anwendungen auch dann reibungslos ausgeführt werden, wenn mehrere Instanzen derselben Anwendung gleichzeitig ausgeführt werden, ohne übermäßige Mengen an Ressourcen aus dem Cluster zu konsumieren. Sie können Ratenlimits für einen Namespace, einen Benutzer, einen Server und ein Quell+-Objekt konfigurieren.
Warum sollten Sie die Ereignisrate -Grenze verwenden??
Hier sind die Gründe, warum es besser ist, eine Ereignisrate zu verwenden:
Kontrolliert die Rate, mit der Ereignisse von Ihren Knoten emittiert werden
Dies ist wichtig, um die Rate zu kontrollieren, mit der Ereignisse von Ihren Knoten emittiert werden. Die Rate, bei der Ereignisse an K8 gesendet werden. Jedes abnormale Ereignis kann unerwartete Arbeitsbelastungen an den zugrunde liegenden Infrastrukturkomponenten verursachen und die CPU -Auslastung an den Masterknoten erhöhen. Wenn beispielsweise ein Knoten aufgrund eines unerwarteten Verkehrsspitzens eine hohe Belastung hat, kann er eine übermäßige Anzahl von Ereignissen erzeugen, die die Leistung des Clusters beeinflussen könnten. Daher ist es wichtig, einen Schwellenwert für die Ereignisrate zu konfigurieren, die der Cluster verarbeiten kann, um eine Überlastung zu verhindern.
Betrachten Sie das folgende Szenario: Sie haben eine Flotte von fünfzig Pods in Ihrem Cluster, und jeder gibt durchschnittlich ungefähr ein Ereignis pro Sekunde aus. In diesem Szenario wäre es ratsam, eine Ereignisrate von weniger als eintausend Ereignissen pro Minute zu konfigurieren, um zu verhindern, dass der Cluster überlastet und nicht mehr reagiert.
Sie haben die Kontrolle über die Anzahl der Schoten, die erstellt werden können
Sie möchten die Anzahl der Pods steuern, die jederzeit erstellt oder veröffentlicht werden können. Dies kann erforderlich sein, um die Arbeitsbelastung in Ihrem Cluster effektiv zu verwalten und Überlast- und Ressourcenkonkurrenzprobleme zu vermeiden.
Es verhindert, dass die Ressourcen einer Anwendung überfordert sind
Sie möchten die Ereignisrate einer einzelnen Anwendung einschränken, um die für diese Anwendung verfügbaren Ressourcen zu verhindern. Angenommen, eine Streaming -Anwendung sollte jede Sekunde viele Ereignisse generieren. In diesem Fall könnte dies die damit zugewiesenen Ressourcen überwältigen und das System langsamer laufen oder schlechte Leistungen erbringen als sonst. Insbesondere stellen sie sicher, dass die CPU und das Gedächtnis kritische Ressourcen, und bleiben in kurzer Zeit durch genügend Ressourcen energetisiert.
Sie stellt sicher, dass eine Anwendung die erwarteten Leistungsanforderungen entspricht
Sie möchten eine Mindestgrenze für die Anzahl der Ressourcen festlegen, die eine bestimmte Anwendung verwendet, um sicherzustellen, dass die erwarteten Leistungsanforderungen jederzeit entspricht. Nehmen wir beispielsweise an, eine Anwendung verfügt. In diesem Fall sollten Sie sicherstellen, dass es nur versucht, mehr Ressourcen zuzuweisen als verfügbar.
Unnötige Benachrichtigungen können vermieden werden
Administratoren können es vermeiden, ihre Infrastruktur mit unnötigen Benachrichtigungen zu überfluten, indem die Anzahl der generierten Ereignisse begrenzt wird.
Es wird Ihnen helfen, Ihre Produktionsumgebung vor übermäßigen Netzwerküberlastungen zu schützen
Die Einschränkung der Ereignisrate ermöglicht das Schutz Ihrer Produktionsumgebung vor übermäßigen Netzwerken und verhindern, dass Ihre Benutzer aufgrund überlasteter Knoten oder fehlerhaften Komponenten unerwartete Ausfallzeiten erleben. Dadurch können Sie auch schnell Engpässe und Leistungsprobleme identifizieren, damit Sie sie beheben können, bevor sie Ihr System ernsthaft beschädigen. Für Organisationen mit Compliance-Anforderungen wie PCI-DSS ist die Aktivierung der Ereignisrate ein absolutes Muss, wenn Sie sicherstellen möchten, dass Ihre Anwendungsdaten jederzeit sicher sind.
So konfigurieren Sie die Ereignisrate -Grenze?
Es gibt einige Möglichkeiten, wie Sie die Ereignisrate -Grenze in Kubernetes aktivieren können. Die einfachste Möglichkeit besteht darin, die hier genannte Konfigurationseinstellung für die Grenzen zu verwenden.
Sie sollten eine neue Konfigurationsdatei namens Limits oder welchen Namen, mit dem Sie in Ordnung sind, erstellen. Fügen Sie nach dem Erstellen Ihres YAML im Verzeichnis Ihres Clusters den folgenden Inhalt hinzu:
"
Yamlkind: LimitRange
min: "1"
Max: "3"
Dies definiert einen Bereich oder ein Minimum und die maximale Anzahl von Schoten, die zu einem bestimmten Zeitpunkt ausgeführt werden können. Der Wert 1 wird auf "min" gesetzt und der Wert 3 ist auf "max" gesetzt.
Wenden Sie ihn nach dem Hinzufügen des folgenden Inhalts über die API an. Sie können auch die folgende Aktion in einer Konfigurationsdatei ausführen, um die Ereignisrate zu aktivieren:
Dienstleistungen:
event_rate_limit:
aktiviert: wahr
Kube-api:
Sie können im obigen Text sehen, dass die Option "aktiviert" auf true eingestellt ist.
Sie können auch überprüfen, ob die Standardwerte unter/etc/kubernetes/[configuration_file_name] angezeigt werden.Yaml nach der Ereignisrate aktiviert:
…
Plugins:
- Aufbau:
apiversion: eventRatelimit.Zulassung.K8S.io/v1alpha1
Art: Konfiguration
Grenzen:
- Burst: 20000
QPS: 5000
Typ: Server
…
Sie müssen die gesamte Kubernetes -Ressource für die Einstellung in der Konfigurationsanweisung bereitstellen, wenn Sie die Ereignisrate -Grenze ändern möchten:
Dienstleistungen:
Kube-api:
event_rate_limit:
aktiviert: wahr
Aufbau:
apiversion: eventRatelimit.Zulassung.K8S.io/v1alpha1
Art: Konfiguration
Grenzen:
- Typ: Server
QPS: 8000
Burst: 40000
Abschluss
Die Ereignisrate -Grenze ist ein wirksames Werkzeug, mit dem Kubernetes -Administratoren das Volumen der Ereignisse einschränken können, die von ihren Knoten erzeugt werden. Sie können die Anzahl der Abfragen einschränken, die von einem externen Benutzer in den Cluster einhergehen können, indem Sie die Anzahl der erstellten Ereignisse einschränken. In diesem Artikel wurden viele weitere Vorteile des Aktivierens von Kubernetes -Ereignisrate -Grenzen erörtert und weist darauf hin, warum Sie Ereignisrate -Grenzwerte aktivieren und wie sie aktiviert werden sollen.