如何使用Kubernetes裏的NetworkPolicy
阿新 • • 發佈:2018-11-22
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