設定檔適用性:等級 2
使用網路政策來隔離叢集網路中的流量。
在同一個 Kubernetes 叢集上運行不同的應用程式會帶來一個風險,即一個被入侵的應用程式可能會攻擊鄰近的應用程式。網路分段對於確保容器只能與其應該通信的對象進行通信非常重要。網路策略是關於如何允許選定的
pods 彼此之間以及與其他網路端點進行通信的規範。
網路政策是以命名空間為範圍的。當一個網路政策被引入到特定的命名空間時,所有不被該政策允許的流量都將被拒絕。然而,如果在一個命名空間中沒有任何網路政策,則所有流量都將被允許進入和離開該命名空間中的
pods。
注意預設情況下,不會建立網路政策。
|
影響
一旦在特定命名空間中使用網路政策,未被網路政策明確允許的流量將被拒絕。因此,在引入網路政策時,確保合法流量不被已封鎖是很重要的。
稽核
執行以下命令並檢視在叢集中建立的
NetworkPolicy物件。顯示具有一個或多個網路策略設定的命名空間的命令行語句:
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
顯示未設置網路政策的命名空間的命令行語句:
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
補救
按照文件指引,根據需要創建
NetworkPolicy物件。詳情請參閱:GKE 文件中的詳細資訊。
