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 Erschöpfen 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 entsprechende Anpassung dieser 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 Argument streaming-connection-idle-timeout. Sofern der Cluster-Administrator den Wert nicht zur Knoten-Konfiguration 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 Anfüge-Pod-Operationen. Das streaming-connection-idle-timeout sollte nicht deaktiviert werden, indem es auf Null gesetzt wird, aber es kann verringert werden.
Hinweis
Hinweis
Wenn der Wert zu niedrig eingestellt ist, können Benutzer, die diese Funktionen verwenden, aufgrund des Timeouts eine Dienstunterbrechung erleben.
Die Kubelet-Konfiguration wird derzeit als Ignition-Konfiguration serialisiert, sodass sie direkt bearbeitet werden kann. Es wurde jedoch auch ein neuer kubelet-config-controller zum Machine Config Controller hinzugefügt. Dies ermöglicht es 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 für jeden Knoten zurückgegebenen Werte nicht 0 sind.

Wiederherstellung

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