Swarm简介:
Swarm是Docker官方提供的一款集群管理工具,其主要作用是把若干台Docker主机抽象为一个整体,并且通过一个入口统一管理这些Docker主机上的各种Docker资源。
Swarm和Kubernetes比较类似,但是更加轻,具有的功能也较kubernetes更少一些
实验环境:
server1:172.25.66.1 manager
server2:172.25.66.2 node1
server3:172.25.66.3 node2
1.使用自签发证书搭建私有仓库
(1).制作证书
[root@foundation66 ~]# cd /tmp/docker/
[root@foundation66 docker]# mkdir certs
[root@foundation66 docker]# openssl req -newkey rsa:4096 -nodes -sha256 -keyout certs/domain.key -x509 -days 365 -out certs/domain.crt
[root@foundation66 docker]# cd certs/
[root@foundation66 certs]# ll
total 8
-rw-r--r--. 1 root root 2098 Mar 14 18:44 domain.crt
-rw-r--r--. 1 root root 3272 Mar 14 18:44 domain.key
(2)创建私有仓库
1.下载并导入registry镜像
registry.tar
[root@foundation66 Desktop]# ls
registry.tar
[root@foundation66 Desktop]# docker load -i registry.tar
[root@foundation66 Desktop]# docker images
2.创建私有仓库(容器)
[root@foundation66 ~]# cd /tmp/docker/
[root@foundation66 docker]# docker run -d \
> --restart=always \
> --name registry \
> -v `pwd`/certs:/certs \
> -e REGISTRY_HTTP_ADDR=0.0.0.0:443 \
> -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt \
> -e REGISTRY_HTTP_TLS_KEY=/certs/domain.key \
> -p 443:443 \
> registry
21de9d97895639d9a371b4dde56ae121c36716947985589e3a9b4546d6fb5735
[root@foundation66 docker]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
21de9d978956 registry "/entrypoint.sh /etc…" 20 seconds ago Up 18 seconds 0.0.0.0:443->443/tcp, 5000/tcp registry
[root@foundation66 docker]# netstat -antlp |grep :443
tcp 0 0 192.168.43.230:44402 111.7.188.1:443 ESTABLISHED 3264/firefox
tcp6 0 0 :::443 :::* LISTEN 8963/docker-proxy
(3).拷贝证书
[root@foundation66 ~]# cd /etc/docker/certs.d/westos.org/
[root@foundation66 westos.org]# ls
ca.crt
[root@foundation66 westos.org]# cp /opt/docker/certs/westos.org.crt ca.crt cp: overwrite ‘ca.crt’? y
(4).传输证书
[root@foundation66 ~]# cd /etc/docker/
[root@foundation66 docker]# ls
certs.d daemon.json key.json
[root@foundation66 docker]# scp -r certs.d/ root@172.25.66.1:/etc/docker
[root@foundation66 docker]# scp -r certs.d/ root@172.25.66.2:/etc/docker
[root@foundation66 docker]# scp -r certs.d/ root@172.25.66.3:/etc/docker
[root@server1 ~]# cd /etc/docker
[root@server1 ~]# ls
certs.d
[root@server2 ~]# cd /etc/docker
[root@server2 ~]# ls
certs.d
[root@server3 ~]# cd /etc/docker/
[root@server3 docker]# ls
certs.d
(5).添加解析
#解析域名为制作证书时设定的Common Name
[root@foundation66 ~]# vim /etc/hosts
[root@server1 ~]# vim /etc/hosts
[root@server2 ~]# vim /etc/hosts
[root@server3 ~]# vim /etc/hosts
2.部署swarm集群
配置主结点:
(1).下载并安装docker
安装包:
docker-engine-17.05.0.ce-1.el7.centos.x86_64.rpm
docker-engine-selinux-17.05.0.ce-1.el7.centos.noarch.rpm
[root@server1 ~]# ls
docker-engine-17.05.0.ce-1.el7.centos.x86_64.rpm
docker-engine-selinux-17.05.0.ce-1.el7.centos.noarch.rpm
[root@server1 ~]# yum install -y *
#用于补齐docker命令
[root@sever1 ~]# yum install -y bash-*
(2).启动docker
[root@server1 ~]# systemctl start docker
[root@sever1 ~]# netstat -antlp