如何定制 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

相关文章
相关标签/搜索