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

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: Calico 是一个纯三层的虚拟网络方案,Calico 为每个容器分配一个 IP,每个 host 都是 router,把不同 host 的容器连接起来。与 VxLAN 不同的是,Calico 不对数据包做额外封装,不需要 NAT 和端口映射,扩展性和性能都很好。

Calico 是一个纯三层的虚拟网络方案,Calico 为每个容器分配一个 IP,每个 host 都是 router,把不同 host 的容器连接起来。与 VxLAN 不同的是,Calico 不对数据包做额外封装,不需要 NAT 和端口映射,扩展性和性能都很好。

与其他容器网络方案相比,Calico 还有一大优势:network policy。用户可以动态定义 ACL 规则,控制进出容器的数据包,实现业务需求。

实验环境描述

Calico 依赖 etcd 在不同主机间共享和交换信息,存储 Calico 网络状态。我们将在 host 192.168.56.101 上运行 etcd。

Calico 网络中的每个主机都需要运行 Calico 组件,提供容器 interface 管理、动态路由、动态 ACL、报告状态等功能。

实验环境如下图所示:

首先启动 etcd。

启动 etcd

在 host 192.168.56.101 上运行如下命令启动 etcd:

etcd -listen-client-urls http://192.168.56.101:2379 -advertise-client-urls http://192.168.56.101:2379


etcd 安装配置详细方法请参考 flannel 章节。

修改 host1 和 host2 的 Docker daemon 配置文件 /etc/systemd/system/docker.service, 连接 etcd:

--cluster-store=etcd://192.168.56.101:2379

 

重启 Docker daemon。

systemctl daemon-reload

systemctl restart docker.service

部署 calico

下载 calicoctl:

wget -O /usr/local/bin/calicoctl https://github.com/projectcalico/calicoctl/releases/download/v1.0.2/calicoctl

chmod +x calicoctl

 

在 host1 和 host2 上启动 calico:

calicoctl node run


启动过程如下:

① 设置主机网络,例如 enable IP forwarding。

② 下载并启动 calico-node 容器,calico 会以容器的形式运行(与 weave 类似)。

③ 连接 etcd。

④ calico 启动成功。

创建 calico 网络

在 host1 或 host2 上执行如下命令创建 calico 网络 cal_ent1:

docker network create --driver calico --ipam-driver calico-ipam cal_net1


--driver calico 指定使用 calico 的 libnetwork CNM driver。

--ipam-driver calico-ipam 指定使用 calico 的 IPAM driver 管理 IP。

calico 为 global 网络,etcd 会将 cal_net 同步到所有主机。

Calico 已经就绪,下一节将运行容器并分析 Calico 的网络结构。

二维码+指纹.png

目录
相关文章
|
SQL 安全 算法
网络安全与信息安全的全面解析:应对漏洞、加密技术及提升安全意识的策略
本文深入探讨了网络安全和信息安全的重要性,详细分析了常见的网络安全漏洞以及其利用方式,介绍了当前流行的加密技术及其应用,并强调了培养良好安全意识的必要性。通过综合运用这些策略,可以有效提升个人和企业的网络安全防护水平。
|
机器学习/深度学习 API 语音技术
|
Kubernetes Cloud Native 网络安全
【云原生-K8s】kubeadm搭建k8s集群1.25版本完整教程【docker、网络插件calico、中间层cri-docker】
【云原生-K8s】kubeadm搭建k8s集群1.25版本完整教程【docker、网络插件calico、中间层cri-docker】
2982 0
【云原生-K8s】kubeadm搭建k8s集群1.25版本完整教程【docker、网络插件calico、中间层cri-docker】
|
Kubernetes 安全 网络协议
【K8S系列】深入解析k8s网络插件—Calico
【K8S系列】深入解析k8s网络插件—Calico
4981 0
|
Java 编译器 程序员
Lambda表达式的使用、简写与原理深入理解
Lambda表达式的使用、简写与原理深入理解
194 1
|
安全 应用服务中间件 nginx
Docker安全性:最佳实践和常见安全考虑
Docker 的快速发展和广泛应用使其成为现代应用开发的热门选择,然而,容器环境的安全性也受到关注。本文将深入研究 Docker 安全性的最佳实践,包括容器镜像安全、容器运行时安全、网络安全等方面,并提供丰富的示例代码,帮助读者全面了解如何确保 Docker 环境的安全性。
|
Linux 开发工具
如何在 centos 7 中修改内核启动顺序
CentOS 7是CentOS项目发布的开源类服务器操作系统,于2014年7月7日正式发布。对于Centos 7 grub 配置有改变,如何修改?
如何在 centos 7 中修改内核启动顺序
|
机器学习/深度学习 测试技术
【从零开始学习深度学习】12. 什么是模型的训练误差?基于三阶多项式的欠拟合与过拟合训练过程演示
【从零开始学习深度学习】12. 什么是模型的训练误差?基于三阶多项式的欠拟合与过拟合训练过程演示
【从零开始学习深度学习】12. 什么是模型的训练误差?基于三阶多项式的欠拟合与过拟合训练过程演示
|
Kubernetes 网络协议 Cloud Native
K8s为什么需要calico? calico 原理深入理解.
K8s为什么需要calico? calico 原理深入理解.
2460 0
|
tengine JavaScript 前端开发
【技术干货】听阿里云CDN安防技术专家金九讲SystemTap使用技巧
SystemTap是一个Linux非常有用的调试(跟踪/探测)工具,常用于Linu内核或者应用程序的信息采集,本篇文章介绍其原理、安装、入门、脚本语言及技巧,由阿里云CDN安防专家金九撰写。
10129 16