zoukankan      html  css  js  c++  java
  • 容器网络(八)如何部署 Calico 网络?【62】

    (二十)如何部署 Calico 网络?

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

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

    (1)实验环境描述

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

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

    实验环境如下图所示:

    首先启动 etcd。

    (2)启动 etcd

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

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

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

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

    在execstart后增加:--cluster-store=etcd://10.0.0.20:2379
    
    

    重启 Docker daemon。

    systemctl daemon-reload
    
    systemctl restart docker.service
    
    

    (3)部署 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 类似)。

    docker containers ls
    

    ③ 连接 etcd。

    ④ calico 启动成功。

    (4)创建 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 同步到所有主机。

    docker network ls
    查看到cal_net1
    
    
  • 相关阅读:
    使用命令安装laravel 项目
    laravel如何输出最后一条执行的SQL
    Laravel5.4 队列简单配置与使用
    PHP使用RabbitMQ实例
    初识RabbitMQ,附RabbitMQ+PHP演示实例
    Laravel 5.3 单用户登录的简单实现
    redis+thinkphp5的注册、登陆、关注基础例子
    Laravel 5.3 单用户登录的简单实现
    php面试题汇总
    (转)php读取文件使用redis的pipeline导入大批量数据
  • 原文地址:https://www.cnblogs.com/cuiyongchao007/p/14154267.html
Copyright © 2011-2022 走看看