第07章-课后作业

  1. 7-1 课后作业(上)
  2. 7-2 课后作业(中)
  3. 7-3 课后作业(下)

俗话说“鸡蛋不要放在同一个篮子里”,所以要对本地部署方案改造成跨主机的运营平台。我们将创建四个Linux主机,利用Swarm技术组建Docker集群。通过Swarm的共享网络,组建起多主机多容器分布式部署的运营平台。

7-1 课后作业(上)

  1. 创建Swarm集群
  2. 搭建PXC集群

如果所有节点都部署在同一台宿主机中,当宿主机宕机程序将会崩溃。

此时,应采用多宿主机部署不同的节点。

Docker Swarm:

多宿主机部署-Docker Swarm

Google K8S:

多宿主机部署-Google K8S

Docker三剑客:

  • docker-machine:容器服务

  • docker-compose:脚本执行服务

  • docker-swarm:容器集群

docker-swarm去中心化的设计

docker-swarm去中心化的设计

注:

  • Manager节点是管理swarm集群,承担worker节点的工作

  • Worker节点是运行容器部署项目

    Manger节点和Worker节点都可配置多节点

创建Swarm集群:

docker swarm init

注:

  • listen-addr ip:port:管理者节点

    创建Swarm集群时,必须应该含有一个管理者节点

    不存在没有管理者的Swarm集群

  • advertise-addr ip:广播地址

    其他节点访问广播地址的IP能加入到Swarm集群

加入Swarm集群:

创建Swarm集群后,命令行会出现提示文字。只需将该文字复制到其他Docker节点并执行即可加入Swarm集群。此方法只能以Worker的身份加入集群。

# 在管理者节点执行...
docker swarm join-token manager
docker swarm join-token worker

注:

  • 添加manager或者worker节点到集群,只要执行对应的命令即可

创建4个Centos系统服务器。

1、2号服务器为manager节点,3、4号服务器为worker节点。

# 1号服务器
docker swarm init
docker swarm join-token manager
docker swarm join-token worker

# 2号服务器 docker swarm join-token manager
docker swarm join --token ....... IP:PORT

# 3号服务器 docker swarm join-token worker
docker swarm join --token ....... IP:PORT

# 4号服务器 docker swarm join-token worker
docker swarm join --token ....... IP:PORT

查看Swarm集群节点:

docker node ls

注:

  • 只可以在Manager节点执行该命令

查看Swarm集群网络:

docker network ls

# 输出
.... ingress overlay swarm

创建共享网络

docker network create -d overlay --attachable share_net_name

注:

  • ingress网络用于管理Swarm集群,所以我们还需要创建新的共享网络传输业务数据。

创建多宿主机PXC集群:

# 安装PXC镜像
docker pull percona/percona-xtradb-cluster
# 对PXC镜像进行改名
docker tag percona/percona-xtradb-cluster pxc
docker rmi percona/percona-xtradb-cluster

# 创建数据卷
docker volume create v1
docker volume create backup
# 创建PXC容器
docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=123456 -v v1:/var/lib/mysql -v backup:/data --privileged --name=node1 --net=share_net_name pxc

创建容器:

docker run -it --net=share_net_name ...
创建多宿主机PXC容器

7-2 课后作业(中)

  1. Swarm容器集群
  2. 退出Swarm集群

查看容器的IP地址

# 1号服务器
# 查看Docker容器的IP地址
docker inspect node1
docker inspect node2

Swarm容器集群

容器集群

Swarm只是管理容器状态,没有实现负载均衡

容器集群适合场景:

  • 容器集群不适合有状态程序,例如数据库、缓存等。

    容器集群数据库程序

只是用DockerSwarm提供的共享网络,而不轻易使用DockerSwarm容器集群

退出Swarm集群:

  1. 主动退出

    docker swarm leave --force

    注:

    • Manager节点退出集群必须要使用–force参数
  2. 被动退出

    # 查看Docker集群的节点名
    docker node ls
    # 降级操作,将manager节点降级为worker节点
    docker node demote node_name
    
    # 停止Docker服务
    service docker stop
    # 删除Docker节点
    docker node rm node_name

    注:

    • 删除任何的节点必须要先停止他的Docker服务
    • Manager节点必须先降级为Worker节点,然后再去删除

7-3 课后作业(下)

  1. 图形化界面部署

使用Portainer管理Docker:

  • 安装Portainer镜像

    docker pull portainer/portainer

开放Docker网络管理端口:

# 编辑配置文件
vim /etc/sysconfig/docker
# 重启Docker
service docker restart

注:

  • 在配置文件结尾添加开放Docker开发2375端口的参数

    OPTIONS='-Htcp://0.0.0.0:2375 -H unix:///var/run/docker.sock'

启动Portainer容器:

docker run -d -p 9000:9000 portainer/portainer -H tcp://192.168.99.196:2375

访问Portainer管理界面:192.168.99.196:9000

图形界面的Worker节点无法显示Swarm共享网络,但是Worker节点可以使用Swarm共享网络创建容器,所以只能在命令行创建使用Swarm共享网络的容器。

四台主机之上的PXC部署方案:

四台主机之上的PXC部署方案

注:

  • Keepalived必须安装在Haproxy所在的容器里。

四台主机之上的前端项目部署方案:

四台主机之上的前端项目部署方案
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 tuyrk@qq.com

文章标题:第07章-课后作业

文章字数:1.1k

本文作者:神秘的小岛岛

发布时间:2019-12-09, 20:35:50

最后更新:2019-12-09, 20:52:00

原始链接:https://www.tuyrk.cn/imooc/219-docker/07-homework/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录
×

喜欢就点赞,疼爱就打赏