收藏文章 楼主

Docker Swarm使用pipwork网络工具

版块:KVM虚拟化   类型:普通   作者:小绿叶技术博客   查看:3278   回复:0   获赞:2   时间:2019-06-17 15:07:34

Docker Swarm使用pipwork网络工具

节点

系统版本

Dokcer版本

IP地址

master

Centos7.5 1804

Docker-ce18.09

10.16.10.20

node01

Centos7.5 1804

Docker-ce18.09

10.16.10.21

......

......

......

......

nodeN

Centos7.5 1804

Docker-ce18.09

10.16.10.x

 

注:以下操作没有特殊说明均在所有节点执行,以master为例

基础环境配置

修改主机名

[root@localhost ~]# hostnamectl set-hostname master

 

修改网卡配置

[root@master ~]# cat /etc/sysconfig/network-scripts/ifcfg-enp7s0

TYPE=Ethernet

PROXY_METHOD=none

BROWSER_ONLY=no

BOOTPROTO=static

DEFROUTE=yes

IPV4_FAILURE_FATAL=no

IPV6INIT=yes

IPV6_AUTOCONF=yes

IPV6_DEFROUTE=yes

IPV6_FAILURE_FATAL=no

IPV6_ADDR_GEN_MODE=stable-privacy

NAME=enp7s0

UUID=b180a47f-8b4e-4f80-ba55-2ab57019af97

DEVICE=enp7s0

ONBOOT=yes

IPADDR=10.16.10.20

NETMASK=255.255.255.0

GATEWAY=10.16.10.1

 

关闭防火墙和SeLinux

[root@master ~]# systemctl stop firewalld

[root@master ~]# systemctl disable firewalld

[root@master ~]# sed -i 's/enforcing/disabled/g' /etc/selinux/config

[root@master ~]# setenforce 0

[root@master ~]# reboot

 

检查SeLinux是否关闭

[root@master ~]# getenforce

Disabled

 

添加DNS地址解析

[root@master ~]# vi /etc/resolv.conf

nameserver 114.114.114.114

 

添加主机名映射

[root@master ~]# vi /etc/hosts

10.16.10.20 master

10.16.10.21 node01

 

安装Docker

安装yum插件

[root@master ~]# yum install -y yum-utils

 

docker-cedocker公司维护的开源项目,是一个基于moby项目的免费的容器产品
docker-ee
docker公司维护的闭源产品,是docker公司的商业产品。

添加docekr-ce

[root@master ~]#yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

 

添加docker-engine(简称docker-ee)

[root@master ~]# cat >/etc/yum.repos.d/docker.repo <<EOF
[dockerrepo]
name=Docker Repository
baseurl=https://yum.dockerproject.org/repo/main/centos/7/
enabled=1
gpgcheck=1
gpgkey=https://yum.dockerproject.org/gpg
EOF

 

 

修改内核

[root@master ~]# cat <<EOF >/etc/sysctl.conf

net.ipv4.ip_forward = 1

net.ipv4.conf.default.rp_filter = 0

net.ipv4.conf.all.rp_filter = 0

EOF

[root@master ~]# sysctl -p

 

安装docker

[root@master ~]# yum install -y docker-ce

[root@master ~]# yum install -y docker-engine

[root@master ~]# systemctl start docker && systemctl enable docker

 

更改docker镜像源

[root@master ~]# vi /etc/docker/daemon.json

{

"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]

}

 

修改docker监听端口调用API

[root@master ~]# vi /lib/systemd/system/docker.service

   ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

修改为

   ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock

[root@master ~]# systemctl daemon-reload

[root@master ~]# systemctl restart docker

 

Swarm安装和集群部署

拉取swarm镜像

[root@master ~]# docker pull swarm

 

初始化Swarm集群master节点执行)

[root@master ~]# docker swarm init --advertise-addr  10.16.10.20

Swarm initialized: current node (svk2fh1hpfprenw69ipnxrg35) is now a manager.

 

To add a worker to this swarm, run the following command:

 

    docker swarm join --token SWMTKN-1-1xbq3kjccuahxf9aejusdjdbqkxmya2e4n6pfyt2kllzop9cee-4w2ea1x4mlw77lihvjzfjaxky 10.16.10.20:2377

 

To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.

 

主节点初始化会返回上面蓝色的token,node节点执行

[root@node01 ~]# docker swarm join --token SWMTKN-1-1xbq3kjccuahxf9aejusdjdbqkxmya2e4n6pfyt2kllzop9cee-4w2ea1x4mlw77lihvjzfjaxky 10.16.10.20:2377

 

验证集群

[root@master ~]# docker node list

ID                            HOSTNAME            STATUS              AVAILABILITY        MANAGER STATUS      ENGINE VERSION

svk2fh1hpfprenw69ipnxrg35 *   master              Ready               Active              Leader              18.09.2

h4hqpmqu8fb09kopdy7f7f5th     node01              Ready               Active                                  18.09.2

a1pw2ryflfrunc7q1rykpv9ho     node02              Ready               Active                                  18.09.2

 

 

搭建本地仓库

master节点上执行

 

拉取仓库镜像

[root@master ~]# docker pull registry

 

运行镜像仓库容器

[root@master ~]# docker run -d -p 5000:5000 --restart=always --name registry registry:latest

 

配置仓库地址

[root@master ~]# vi /etc/docker/daemon.json

{

        "registry-mirrors": ["https://xxxx.mirror.aliyuncs.com"],

        "insecure-registries":["10.16.10.20:5000"]

}

 

加载并重启docker

[root@master ~]# systemctl daemon-reload

[root@master ~]# systemctl restart docker

使用http客户端查看

http://IP:5000/v2/_catalog

使用pipwork网络工具桥接容器(不能实现自动绑定)

以下操作均在