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

如何使用Kubernetes裡的NetworkPolicy

建立一個型別為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

執行完畢後看到提示[email protected]:/#, 說明我通過上述命令建立的臨時pod成功的連線到了postgreSQL的pod上。

輸入正確的使用者名稱和密碼,能成功連線到postgreSQL pod提供的資料庫服務上。

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

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