centos7 安装 docker calico

原文链接:https://www.cnblogs.com/lkun/p/7857453.html

参考链接(etcd搭建):https://blog.csdn.net/jiangshouzhuang/article/details/52822125

etcd 搭建:

node1:

nohup etcd --name node1 --initial-advertise-peer-urls http://192.168.100.107:2380   
--listen-peer-urls http://0.0.0.0:2380 --listen-client-urls http://0.0.0.0:2379,http://0.0.0.0:4001 
--advertise-client-urls http://0.0.0.0:2379  --initial-cluster-token etcd-cluster  
--initial-cluster node1=http://192.168.100.107:2380,node2=http://192.168.100.108:2380 --initial-cluster-state new &> etcd.log&

node2:

nohup etcd --name node2 --initial-advertise-peer-urls http://192.168.100.108:2380   
--listen-peer-urls http://0.0.0.0:2380 --listen-client-urls http://0.0.0.0:2379,http://0.0.0.0:4001 
--advertise-client-urls http://0.0.0.0:2379  --initial-cluster-token etcd-cluster  
--initial-cluster node1=http://192.168.100.107:2380,node2=http://192.168.100.108:2380 --initial-cluster-state new &> etcd.log&

检查etcd:

[root@node2 ~]# etcdctl -C http://192.168.100.107:2379,http://192.168.100.108:2379 member list
46ed1796ef158c6f: name=node1 peerURLs=http://192.168.100.107:2380 clientURLs=http://0.0.0.0:2379 isLeader=true
57bd6fb5424e9607: name=node2 peerURLs=http://192.168.100.108:2380 clientURLs=http://0.0.0.0:2379 isLeader=false

docker  配置:

node1配置:

[root@node1 ~]# cat /etc/sysconfig/docker
OPTIONS='--cluster-store=etcd://192.168.100.107:2379 --log-driver=journald --signature-verification=false'

node2配置:

[root@node2 ~]# cat /etc/sysconfig/docker
OPTIONS='--cluster-store=etcd://192.168.100.108:2379 --log-driver=journald --signature-verification=false'

calico-node容器启动:docker pull quay.io/calico/node:v2.6.2

docker run --net=host --privileged --name=calico-node -d --restart=always -e NODENAME=node1 -e CALICO_NETWORKING_BACKEND=bird -e CALICO_LIBNETWORK_ENABLED=true -e ETCD_ENDPOINTS=http://node1:2379 -v /var/log/calico:/var/log/calico -v /var/run/calico:/var/run/calico -v /lib/modules:/lib/modules -v /run:/run -v /run/docker/plugins:/run/docker/plugins -v /var/run/docker.sock:/var/run/docker.sock quay.io/calico/node:v2.6.2

检查:

[root@node1 ~]# calicoctl node status
Calico process is running.

IPv4 BGP status
+-----------------+-------------------+-------+----------+-------------+
|  PEER ADDRESS   |     PEER TYPE     | STATE |  SINCE   |    INFO     |
+-----------------+-------------------+-------+----------+-------------+
| 192.168.100.108 | node-to-node mesh | up    | 02:50:57 | Established |
+-----------------+-------------------+-------+----------+-------------+

IPv6 BGP status
No IPv6 peers found.

 创建calico网络

[root@node1 ~]# docker network create --driver calico --ipam-driver calico-ipam calico-net1
922e39e3990d199e07365ffe3b7f3d4c4b8365fda8ab89810863473251235819

 这时node1和node2都可以看到此网络:

[root@node1 ~]# docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
82bef7a1eabd        bridge              bridge              local
5ec88055b6f3        calico-net1         calico              global
33f0f6170f24        host                host                local
cf2ae938e7f0        none                null                local

[root@node2 ~]#  docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
f95a0c79fe4c        bridge              bridge              local
5ec88055b6f3        calico-net1         calico              global
fac2d56a2487        host                host                local
0cc71e06f4e6        none                null                local

 启动容器,测试网络:

node1:

docker run -itd --name calico1 --network=calico-net1 centos sleep inf

node2:

docker run -itd --name calico2 --network=calico-net1 centos sleep inf

容器网络查看:

node1:

[root@node1 ~]# docker exec calico1  ip a 
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
8: cali0@if9: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
    link/ether ee:ee:ee:ee:ee:ee brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 192.168.166.128/32 scope global cali0
       valid_lft forever preferred_lft forever
    inet6 fe80::ecee:eeff:feee:eeee/64 scope link 
       valid_lft forever preferred_lft forever

node2:

[root@node2 ~]# docker exec calico3 ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
7: cali0@if8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
    link/ether ee:ee:ee:ee:ee:ee brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 192.168.104.1/32 scope global cali0
       valid_lft forever preferred_lft forever
    inet6 fe80::ecee:eeff:feee:eeee/64 scope link 
       valid_lft forever preferred_lft forever

容器网络测试:

[root@node2 ~]# docker exec calico3 ping 192.168.166.128
PING 192.168.166.128 (192.168.166.128) 56(84) bytes of data.
64 bytes from 192.168.166.128: icmp_seq=1 ttl=62 time=0.475 ms
64 bytes from 192.168.166.128: icmp_seq=2 ttl=62 time=0.481 ms
原文地址:https://www.cnblogs.com/wangjq19920210/p/13660601.html