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

在前面的小节中,我们没有特别配置,calico 会为自动为网络分配 subnet,当然我们也可以定制。

首先定义一个 IP Pool,比如:

cat << EOF | calicoctl create -f -

- apiVersion: v1

kind: ipPool

metadata:

cidr: 17.2.0.0/16

EOF

用此 IP Pool 创建 calico 网络。

docker network create --driver calico --ipam-driver calico-ipam --subnet=17.2.0.0/16 my_net

此时运行容器将分配到指定 subnet 中的 IP。

当然也可以通过 --ip 为容器指定 IP,但必须在 subnet 范围之内。

至此,我们已经讨论了 Docker 的多种跨主机网络方案,下一节将从多个维度比较各种方案的优缺点。

时间: 2024-10-23 19:00:14

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

Service IP 原理 - 每天5分钟玩转 Docker 容器技术(137)

Service Cluster IP 是一个虚拟 IP,是由 Kubernetes 节点上的 iptables 规则管理的. 可以通过 iptables-save 命令打印出当前节点的 iptables 规则,因为输出较多,这里只截取与 httpd-svc Cluster IP 10.99.229.179 相关的信息: 这两条规则的含义是: 如果 Cluster 内的 Pod(源地址来自 10.244.0.0/16)要访问 httpd-svc,则允许. 其他源地址访问 httpd-svc,跳转到

Calico 的默认连通性 - 每天5分钟玩转 Docker 容器技术(69)

前面我们完成了 Calico 网络的部署并运行了容器,今天将讨论 Calico 的连通性. 测试一下 bbox1 与 bbox2 的连通性: ping 成功,数据包流向如下图所示. ① 根据 bbox1 的路由表,将数据包从 cal0 发出. ② 数据经过 veth pair 到达 host1,查看路由表,数据由 enp0s8 发给 host2(192.168.56.105). 192.168.183.64/26 via 192.168.56.105 dev enp0s8  proto bird

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

Calico 默认的 policy 规则是:容器只能与同一个 calico 网络中的容器通信.本节讨论如何定制 policy. calico 能够让用户定义灵活的 policy 规则,精细化控制进出容器的流量,下面我们就来实践一个场景: 创建一个新的 calico 网络 cal_web 并部署一个 httpd 容器 web1. 定义 policy 允许 cal_net2 中的容器访问 web1 的 80 端口. 首先创建 cal_web. docker network create --driv

Calico 的网络结构是什么?- 每天5分钟玩转 Docker 容器技术(68)

上一节我们部署了 Calico 网络,今天将运行容器并分析 Calico 的网络结构. 在 host1 中运行容器 bbox1 并连接到 cal_net1: docker container run --net cal_net1 --name bbox1 -tid busybox 查看 bbox1 的网络配置. cali0 是 calico interface,分配的 IP 为 192.168.119.2.cali0 对应 host1 编号 11 的 interface cali5f744ac0

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

Calico 是一个纯三层的虚拟网络方案,Calico 为每个容器分配一个 IP,每个 host 都是 router,把不同 host 的容器连接起来.与 VxLAN 不同的是,Calico 不对数据包做额外封装,不需要 NAT 和端口映射,扩展性和性能都很好. 与其他容器网络方案相比,Calico 还有一大优势:network policy.用户可以动态定义 ACL 规则,控制进出容器的数据包,实现业务需求. 实验环境描述 Calico 依赖 etcd 在不同主机间共享和交换信息,存储 Cal

获取 dhcp IP 过程分析 - 每天5分钟玩转 OpenStack(91)

前面我们已经讨论了 DHCP agent 的配置以及 namespace 如何隔离 dnsmasq 服务,本节将以 cirros-vm1 为例分析获取 DHCP IP 的详细过程. 在创建 instance 时,Neutron 会为其分配一个 port,里面包含了 MAC 和 IP 地址信息.这些信息会同步更新到 dnsmasq 的 host 文件.如下图所示: 同时 nova-compute 会设置 cirros-vm1 VIF 的 MAC 地址. 一切准备就绪,instance 获取 IP

Docker容器之内网独立IP访问

Docker容器之内网独立IP访问 实验介绍 今天在学习Docker容器的时候,在虚拟机中创建并开启了一个nginx的container,然后通过端口映射的方法,即将container的80端口映射到虚拟机的80端口,然后在宿主机上通过访问虚拟机的IP从而访问到Docker容器的Nginx服务. 然后开始思考,能否通过分配给container一个独立的IP,然后在宿主机上访问这个独立IP从而访问Nginx服务.通过各种探索,百度,最终实现,下面开始实验,这里用的是虚拟机的NAT模式. 实验图解

【python3】如何建立爬虫代理ip池

一.为什么需要建立爬虫代理ip池 在众多的网站防爬措施中,有一种是根据ip的访问频率进行限制的,在某段时间内,当某个ip的访问量达到一定的阀值时,该ip会被拉黑.在一段时间内被禁止访问. 这种时候,可以通过降低爬虫的频率,或者更改ip来应对.后者就需要有一个可用的代理ip池,以供爬虫工作时切换. 二.如何建立一个爬虫代理ip池 思路:   1.找到一个免费的ip代理网站(如:西刺代理) 2.爬取ip(常规爬取requests+BeautifulSoup) 3.验证ip有效性(携带爬取到的ip,去

Redis学习之代理 ip 池设计方法详解

代理 ip 因为配置简单而且廉价,经常用来作为反反爬虫的手段,但是稳定性一直是其诟病.筛选出优质的代理 ip 并不简单,即使付费购买的代理 ip 源,卖家也不敢保证 100% 可用:另外代理 ip 的生命周期也无法预知,可能上一秒能用,下一秒就扑街了.基于这些原因,会给使用代理 ip 的爬虫程序带来很多不稳定的因素.要排除代理 ip 的影响,通常的做法是建一个代理 ip 池,每次请求前来池子取一个 ip,用完之后归还,保证池子里的 ip 都是可用的.本文接下来就探讨一下,如何使用 Redis 数