如何定制 Calico 網絡 Policy - 每天5分鍾玩轉 Docker 容器技術(70)


Calico 默認的 policy 規則是:容器只能與同一個 calico 網絡中的容器通信。本節討論如何定制 policy。

calico 能夠讓用戶定義靈活的 policy 規則,精細化控制進出容器的流量,下面我們就來實踐一個場景:

  1. 創建一個新的 calico 網絡 cal_web 並部署一個 httpd 容器 web1

  2. 定義 policy 允許 cal_net2 中的容器訪問 web1 的 80 端口。

首先創建 cal_web

docker network create --driver calico --ipam-driver calico-ipam cal_web 

在 host1 中運行容器 web1,連接到 cal_web:

docker container run --net cal_web --name web1 -d httpd

web1 的 IP 為 192.168.119.7

目前 bbox3 還無法訪問 web1 的 80 端口。

創建 policy 文件 web.yml,內容為:

① profile 與 cal_web 網絡同名,cal_web 的所有容器(web1)都會應用此 profile 中的 policy。

 ingress 允許 cal_net2 中的容器(bbox3)訪問。

③ 只開放 80 端口。

應用該 policy。

calicoctl apply -f web.yml

現在 bbox3 已經能夠訪問 web1 的 http 服務了。

不過 ping 還是不行,因為只放開了 80 端口。

上面這個例子比較簡單,不過已經向我們展示了 calico 強大的 policy 功能。通過 policy,可以動態實現非常復雜的容器訪問控制。有關 calico policy 更多的配置,可參看官網文檔 http://docs.projectcalico.org/v2.0/reference/calicoctl/resources/policy

下一節我們討論 Calico 的最后一項內容:IPAM。

二維碼+指紋.png


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM