calico-container 安装

来源:互联网 发布:淘宝怎么看销量 编辑:程序博客网 时间:2024/04/30 21:20

calico现在在docker的网络选型里面用的还是比较多的,calico脚踏两只船 即支持cnm,也支持cni,这篇文章讲解calico-container的安装方式


1.获取命令行工具
wget http://www.projectcalico.org/builds/calicoctl
chmod +x calicoctl
2.拉取image
docker pull calico/node:latest
docker pull calico/node-libnetwork:latest
3.安装etcd
请自行百度etcd的安装方式
4.启动calico服务
 ETCD_AUTHORITY=x.x.x.x:4001 ./calicoctl  node --libnetwork
5.检查启动是否启动成功
docker ps可以看到一个为node的容器和一个node-libnetwork的容器
6.查看calico ip pool
ETCD_AUTHORITY=x.x.x.x:4001 ./calicoctl  pool show 
calicoctl add 时有下面参数根据实际情况自己选择:
 --ipv4          Show IPv4 information only
  --ipv6          Show IPv6 information only
  --nat-outgoing  Apply NAT to outgoing traffic
  --ipip          Use IP-over-IP encapsulation across hosts
可以根据个人需要添加删除pool来指定ip地址范围
7.初始化docker network
当使用docker环境时可以这样初始化:
docker network create --driver=calico --subnet=192.168.0.0/24 net1
8.验证
创建两个docker容器使用创建的net,查看ip地址是否在ip pool范围内,查看是否ping通
9.指定固定ip地址
docker run --net net1  --ip 192.168.0.101 -d 8a0f29e3a204
10.指定路由规则,默认使用使用calico的容器不能访问外网,也不能访问宿主机所在的网络智能内部互通
需要添加nat转发
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 ! -d 192.168.89.0/16 -j MASQUERADE
添加profile允许任何网络访问,精细控制请查看官方文档
cat >prof_applications.json <<EOF
{
  "id": "applications", 
  "inbound_rules": [
    {
      "action": "allow", 
      "src_tag": "applications"
    },
    {
      "action": "allow"
    }
  ], 
  "outbound_rules": [
    {
      "action": "allow"
    }
  ]
}
EOF
这样就可以互通了


11.添加路由
calicoctl bgppeer rr add 192.168.0.1


0 0