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


    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_net1:

    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

  • 相关阅读:
    相机用的 SD Card 锁Lock 烂掉了,无法正常写入
    Cannon 60D 电池卡在电池槽了,拔不出来怎么办?
    免费好用的 Apple 工具(Windows 适用)
    𠝹 (界刂) 呢個字點打?
    学校或公司转ISP -boardband (上网公司)注意事项记录
    iis站点添加.asmx的映射
    跨页面传参
    setTimeout和setInterval
    鼠标获取屏幕上的固定点位置坐标
    把完整字符串分割为字符串数组
  • 原文地址:https://www.cnblogs.com/CloudMan6/p/7509975.html
Copyright © 2020-2023  润新知