Ansichten:
Profilanwendbarkeit: Stufe 1
Deaktivieren Sie keine Timeouts bei Streaming-Verbindungen.
Das Festlegen von Leerlauf-Timeouts stellt sicher, dass Sie vor Denial-of-Service-Angriffen, inaktiven Verbindungen und dem Ausgehen von temporären Ports geschützt sind.
Hinweis
Hinweis
Standardmäßig ist --streaming-connection-idle-timeout auf 4 Stunden eingestellt, was für Ihre Umgebung möglicherweise zu hoch ist. Eine angemessene Einstellung würde zusätzlich sicherstellen, dass solche Streaming-Verbindungen nach dem Bedienen legitimer Anwendungsfälle beendet werden.
Hinweis
Hinweis
Standardmäßig ist streamingConnectionIdleTimeout auf 4 Stunden eingestellt.

Auswirkung

Langfristige Verbindungen könnten unterbrochen werden.

Prüfung

OpenShift verwendet den Kubernetes-Standard von 4 Stunden für das streaming-connection-idle-timeout-Argument. Sofern der Cluster-Administrator den Wert nicht zur Knotenkonfiguration hinzugefügt hat, wird der Standardwert verwendet. Der Wert ist ein Timeout für HTTP-Streaming-Sitzungen, die über einen Kubelet laufen, wie die Port-Weiterleitung, Exec- oder Attach-Pod-Operationen. Das streaming-connection-idle-timeout sollte nicht durch Setzen auf Null deaktiviert werden, kann jedoch verringert werden.
Hinweis
Hinweis
Wenn der Wert zu niedrig eingestellt ist, können Benutzer, die diese Funktionen verwenden, aufgrund des Zeitlimits eine Dienstunterbrechung erleben.
Die Kubelet-Konfiguration wird derzeit als Ignition-Konfiguration serialisiert, sodass sie direkt bearbeitet werden kann. Es wurde jedoch auch ein neues kubelet-config-controller zum Machine Config Controller hinzugefügt. Dies ermöglicht Ihnen, eine KubeletConfig benutzerdefinierte Ressource zu erstellen, um die Kubelet-Parameter zu bearbeiten.
Führen Sie den folgenden Befehl aus, um das Streaming-Verbindungstimeout für jeden Knoten anzuzeigen:
for node in $(oc get nodes -ojsonpath='{.items[*].metadata.name}'); do
oc get --raw /api/v1/nodes/$node/proxy/configz | jq
'.kubeletconfig.streamingConnectionIdleTimeout'
done
Überprüfen Sie, ob die zurückgegebenen Werte für jeden Knoten nicht 0 sind.

Wiederherstellung

Befolgen Sie die Anweisungen in der OpenShift-Dokumentation, um eine kubeletconfig benutzerdefinierte Ressource zu erstellen und setzen Sie streamingConnectionIdleTimeout auf den gewünschten Wert. Setzen Sie den Wert nicht auf 0.