第 8 章 容器网络 - 070 - 如何定制 Calico 网络 Policy?

时间:2023-03-10 04:01:55
第 8 章 容器网络 - 070 - 如何定制 Calico 网络 Policy?

定制 Calico 网络 Policy

Calico 默认的 policy 规则是:容器只能与同一个 calico 网络中的容器通信。

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 --network cal_web --name web1 -d httpd

第 8 章 容器网络 - 070 - 如何定制 Calico 网络 Policy?

web1 的 IP 为 192.168.119.10

第 8 章 容器网络 - 070 - 如何定制 Calico 网络 Policy?

目前 bbox4 还无法访问 web1 的 80 端口

第 8 章 容器网络 - 070 - 如何定制 Calico 网络 Policy?

创建 policy 文件 web.yml,内容为:

第 8 章 容器网络 - 070 - 如何定制 Calico 网络 Policy?

1)profile 与 cal_web 网络同名,cal_web 的所有容器(web1)都会应用此 profile 中的 policy

2)ingress 允许 cal_net2 中的容器(bbox4)访问

3)只开放 80 端口

应用该 policy。

calicoctl apply -f web.yml

第 8 章 容器网络 - 070 - 如何定制 Calico 网络 Policy?

现在 bbox4 已经能够访问 web1 的 http 服务了

第 8 章 容器网络 - 070 - 如何定制 Calico 网络 Policy?

不过 ping 还是不行,因为只放开了 80 端口

第 8 章 容器网络 - 070 - 如何定制 Calico 网络 Policy?

-------------------------------------引用来自-------------------------------------

https://mp.weixin.qq.com/s?__biz=MzIwMTM5MjUwMg==&mid=2653587866&idx=1&sn=037a3ef36185782f626247b3ace58306&chksm=8d308183ba470895c4442d3d9bf36eebc7f4a6ce5a3eddfd4ab7883434d659d0b82697c2e26c&scene=21#wechat_redirect