1. 程式人生 > >如何使用Kubernetes裏的NetworkPolicy

如何使用Kubernetes裏的NetworkPolicy

esql 哪些 裏的 network mage time one 原創文章 afa

創建一個類型為NetworkPolicy的Kubernetes對象的yaml文件。

第九行的podSelector指定這個NetworkPolicy施加在哪些pod上,通過label來做pod的過濾。

技術分享圖片

從第16行開始的ingress定義,定義了只有具備標簽component=ads,module=app的pod才能夠連接component=ads, module=db的pod。

首先創建一個臨時的pod,使用正確的label(component=ads,module=app)去訪問db pod:

kubectl run --restart=Never -it --rm --image=postgres:9.6 --labels="component=ads,module=app" --env="PGCONNECT_TIMEOUT=5" helper --command -- /bin/bash

執行完畢後看到提示root@helper:/#, 說明我通過上述命令創建的臨時pod成功的連接到了postgreSQL的pod上。

技術分享圖片

輸入正確的用戶名和密碼,能成功連接到postgreSQL pod提供的數據庫服務上。

技術分享圖片

現在我們重新創建一個臨時pod,不指定label,因此不滿足NetworkPolicy裏定義的限制條件,因此會看到我們期望的結果:postgreSQL連接失敗。

技術分享圖片

希望通過例子大家能夠理解Kubernetes裏NetworkPolicy的工作原理。
要獲取更多Jerry的原創文章,請關註公眾號"汪子熙":

技術分享圖片

如何使用Kubernetes裏的NetworkPolicy