Ansichten:
Profilanwendbarkeit: Stufe 2
Verwenden Sie Netzwerkrichtlinien, um den Datenverkehr im Cluster-Netzwerk zu isolieren.
Das Ausführen verschiedener Anwendungen auf demselben Kubernetes-Cluster birgt das Risiko, dass eine kompromittierte Anwendung eine benachbarte Anwendung angreift. Die Netzwerksegmentierung ist wichtig, um sicherzustellen, dass Container nur mit denjenigen kommunizieren können, mit denen sie sollen. Eine Netzwerkrichtlinie ist eine Spezifikation, wie Auswahlen von Pods miteinander und mit anderen Netzwerkknoten kommunizieren dürfen.
Netzwerkrichtlinien sind auf Namespaces beschränkt. Wenn eine Netzwerkrichtlinie in einem bestimmten Namespace eingeführt wird, wird jeglicher Verkehr, der nicht durch die Richtlinie erlaubt ist, verweigert. Wenn jedoch keine Netzwerkrichtlinien in einem Namespace vorhanden sind, wird der gesamte Verkehr in die und aus den Pods in diesem Namespace zugelassen.
Hinweis
Hinweis
Standardmäßig werden keine Netzwerkrichtlinien erstellt.

Auswirkung

Sobald Netzwerkrichtlinien innerhalb eines bestimmten Namensraums verwendet werden, wird der Verkehr, der nicht ausdrücklich durch eine Netzwerkrichtlinie erlaubt ist, verweigert. Daher ist es wichtig sicherzustellen, dass beim Einführen von Netzwerkrichtlinien legitimer Verkehr nicht gesperrt wird.

Prüfung

Führen Sie die folgenden Befehle aus und überprüfen Sie die NetworkPolicy-Objekte, die im Cluster erstellt wurden.
Befehlszeilenausdruck, um Namespaces mit 1 oder mehr festgelegten Netzwerk-Richtlinien anzuzeigen:
kubectl get ns -o jsonpath='{range .items[*]}{.metadata.name}{"\n"}{end}' | while read ns; do count=$(kubectl get networkpolicy -n "$ns" --no-headers 2>/dev/null | wc -l | tr -d ' ') if [ "$count" -gt 0 ]; then echo -e "${ns}\t${count}" fi done
Befehlszeile zum Anzeigen von Namespaces mit 0 festgelegten Netzwerk-Richtlinien:
for ns in $(kubectl get ns -o jsonpath='{.items[*].metadata.name}'); do count=$(kubectl get networkpolicy -n "$ns" --no-headers 2>/dev/null | wc -l | tr -d ' ') if [ "$count" -eq 0 ]; then echo -e "${ns}\t${count}" fi done

Wiederherstellung

Befolgen Sie die Dokumentation und erstellen Sie NetworkPolicy-Objekte nach Bedarf. Siehe: GKE-Dokumentation für weitere Informationen.