TH小破站

  • 首页
  • 容器
    • 认识Docker
    • DockerFile详解
  • k8s
    • 认识Kubernetes
    • Kubernetes部署--(kubeadm方式)
    • kubeasz部署k8s集群
    • Ansible-binary部署k8s集群-1.31.2
  • Ceph
    • 认识分布式存储
    • CPEH部署
  • CI/CD
    • DevOps认识
    • 部署--Gitlab
  • ELK
    • ELK简介
    • Elasticsearch
    • Kibana部署
    • Logstash
    • ELK--收集 tomcat 日志(实战)
  • HD
    • 认识--大数据
    • Hadoop-单机部署
    • Hadoop-伪分布部署
    • Hadoop-完全分布部署
    • Hadoop-(HA)完全分布部署
    • Ambari自动部署--Hadoop
  • Nginx
    • Nginx功能介绍
    • Nginx安全选项
    • Nginx配置文件简单介绍
    • 网站服务器部署
  • 监控
    • ZABBIX-部署(yum)
    • ZABBIX-编译安装
  • 云计算
    • KVM 概述
    • OpenStack企业级部署(T版)
    • OpenStack之dashboard部署
    • OpenStack-controller的高可用
    • openstack(Caracal版_ubuntu版本)部署
  • 数据库
    • mariadb与mysql
    • mysql主从
    • MySQL--冷备(实战)
    • MySQL--热备(dump表)
    • MySQL--热备(dump库)
    • 数据恢复实战案例
    • Xtrabackup实现MySql8.x全量备份
    • MyCat实现数据库读写分离
    • MHA实现数据库高可用
    • Percona XtraDB(PXC)实现数据库集群高可用
    • 数据库压力测试
    • PostgreSQL 基操
    • PostgreSQL备份恢复
    • PostgreSQL高可用
    • MongDB安装配置基础使用
    • MongoDB实现复制集
    • MongoDB备份还原
  • 自动化
    • ssh远程服务原理及配置
    • Ansible剧本文件应用
    • Ansible管理服务介绍
    • Ansible自动化部署node_exporter(包含升级,回滚)
    • Saltstack-部署安装
  • 脚本
    • 一键查看服务器资源利用率
    • 一键生成SSL证书
    • 保存指定数量的文件/目录
    • 初始化服务器
    • 扫描可用IP
    • 批量分发SSH密钥
    • 监控多主机磁盘脚本
    • 一键安装MySQL8.x脚本
    • Python脚本监控ES集群
    • 资源巡检脚本
    • 查看各用户使用的cpu占比
热衷于分享
架构师成长之路 !!!
  1. 首页
  2. 容器技术
  3. 正文

通过Docker-swarm如何编排容器

2024年2月20日 849点热度 0人点赞 0条评论

Docker-swarm

  • 准备三个主机:192.168.139.30;192.168.139.32;192.168.139.34,都安装好docker

1.1)初始化

[root@master-a src]# docker swarm --help
`初始化集群`
[root@master-a src]# docker swarm init --advertise-addr 192.168.139.30
`查看token`
[root@master-a src]# docker swarm join-token worker
To add a worker to this swarm, run the following command:
​
    docker swarm join --token SWMTKN-1-4vbnupm12d6b4y33c80lcz9znj9xicbk9qznin67xeiya8oyhh-40jn9xn8g5edp852lgm39gy4d 192.168.139.30:2377

1.2)添加节点

`将192.168.139.32;192.168.139.33加入到192.168.139.30`
[root@master-b src]# docker swarm join --token SWMTKN-1-4vbnupm12d6b4y33c80lcz9znj9xicbk9qznin67xeiya8oyhh-40jn9xn8g5edp852lgm39gy4d 192.168.139.30:2377
[root@master-c src]# docker swarm join --token SWMTKN-1-4vbnupm12d6b4y33c80lcz9znj9xicbk9qznin67xeiya8oyhh-40jn9xn8g5edp852lgm39gy4d 192.168.139.30:2377

1.3)查看加入的节点

`在192.168.139.30主机查看加入的节点`
[root@master-a src]# docker node ls
ID                         HOSTNAME  STATUS    AVAILABILITY  MANAGER   STATUS  ENGINE    VERSION
ry3f66t2qhv9x7ue5ys1ljsqa  *         master-a  Ready         Active    Leader  19.03.15
nzz1kolk8dcpzsuc86608eaz3  master-b  Ready     Active        19.03.15
p9jkem6q9nv0qmzk6xw48pjni  master-c  Ready     Active        19.03.15

1.4)添加label

[root@master-a src]# docker node update --label-add name=swarm-master-1 master-a
master-a
[root@master-a src]# docker node update --label-add name=swarm-master-2 master-b
master-b
[root@master-a src]# docker node update --label-add name=swarm-master-2 master-c
master-c

1.5)将其他节点提升为manager角色以实现高可用:

[root@master-a src]# docker node promote master-b
Node master-b promoted to a manager in the swarm.
[root@master-a src]# docker node promote master-c
Node master-c promoted to a manager in the swarm.
`查看`
[root@master-a src]# docker node ls
ID                            HOSTNAME            STATUS              AVAILABILITY        MANAGER STATUS      ENGINE VERSION
ry3f66t2qhv9x7ue5ys1ljsqa *   master-a            Ready               Active              Leader              19.03.15
nzz1kolk8dcpzsuc86608eaz3     master-b            Ready               Active              Reachable           19.03.15
p9jkem6q9nv0qmzk6xw48pjni     master-c            Ready               Active              Reachable           19.03.15

1.6)查看node信息:

[root@master-a src]# docker node inspect master-a
.........
        "Status": {
            "State": "ready",
            "Addr": "192.168.139.30"
        },
        "ManagerStatus": {
            "Leader": true,
            "Reachability": "reachable",
            "Addr": "192.168.139.30:2377"
        }
    }
]

1.7)创建网络:

[root@master-a src]# docker network create -d overlay --subnet=10.220.0.0/21 --gateway=10.220.0.1 --attachable jie-net
`查看网络`
[root@master-a src]# docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
0649759f5d78        bridge              bridge              local
6c5f7e0c734d        docker_gwbridge     bridge              local
04bfc3f68ba4        host                host                local
u3f4k0p09jt0        ingress             overlay             swarm
6vz8z2pcreuo        jie-net             overlay             swarm
1afb83bbbff1        none                null                local

1.8)创建容器测试

`拉取一个官方镜像测试`
[root@master-a src]# docker pull nginx:1.18-alpine
[root@master-b src]# docker pull nginx:1.18-alpine
[root@master-c src]# docker pull nginx:1.18-alpine
`创建nginx容器`
[root@master-a src]# docker service create --replicas 2 -p 8888:80 --network jie-net --name nginx nginx:1.18-alpine
​
rkofhmfwnv1hcozj27qdbr5aq
overall progress: 2 out of 2 tasks 
1/2: running   [==================================================>] 
2/2: running   [==================================================>] 
verify: Service converged 
`查看service`
[root@master-a src]# docker service ls
ID                  NAME                MODE                REPLICAS            IMAGE               PORTS
rkofhmfwnv1h        nginx               replicated          2/2                 nginx:1.18-alpine   *:8888->80/tcp
"可以访问集群里面的任何一个IP"

1.9)验证容器状态

[root@master-a src]# docker service ps rkofhmfwnv1h
ID            NAME     IMAGE              NODE      DESIRED  STATE    CURRENT  STATE    ERROR  PORTS
j27jj8k04psm  nginx.1  nginx:1.18-alpine  master-b  Running  Running  5        minutes  ago
4j5zqbfe6k7f  nginx.2  nginx:1.18-alpine  master-a  Running  Running  5        minutes  ago
​

标签: 暂无
最后更新:2024年2月20日

tanghao946

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复
文章目录
  • Docker-swarm
    • 1.1)初始化
    • 1.2)添加节点
    • 1.3)查看加入的节点
    • 1.4)添加label
    • 1.5)将其他节点提升为manager角色以实现高可用:
    • 1.6)查看node信息:
    • 1.7)创建网络:
    • 1.8)创建容器测试
    • 1.9)验证容器状态

COPYRIGHT © 2025 TH小破站. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

渝ICP备2023013789号

渝公网安备50011702500926号