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

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

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

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

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

首先建立 cal_webcode

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

 

在 host1 中運行容器 web1,鏈接到 cal_web:文檔

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

 

web1 的 IP 爲 192.168.119.7get

目前 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

相關文章
相關標籤/搜索