如何定制 Calico 网络 Policy - 每天5分钟玩转 Docker 容器技术(70)

Posted CloudMan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何定制 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。

技术分享







以上是关于如何定制 Calico 网络 Policy - 每天5分钟玩转 Docker 容器技术(70)的主要内容,如果未能解决你的问题,请参考以下文章

如何定制 Calico 的 IP 池?- 每天5分钟玩转 Docker 容器技术(71)

k8s安装recognize “calico.yaml“: no matches for kind “PodDisruptionBudget“ in version “policy/v1“

canal 网络的相关配置文件

如何部署 Calico 网络?- 每天5分钟玩转 Docker 容器技术(67)

calicoctl命令简介

如何使用Calico实现跨主机Docker网络通信