惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Jina AI
Jina AI
V
Vulnerabilities – Threatpost
Security Latest
Security Latest
AI
AI
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
量子位
H
Help Net Security
Attack and Defense Labs
Attack and Defense Labs
The GitHub Blog
The GitHub Blog
L
LINUX DO - 最新话题
A
Arctic Wolf
博客园_首页
S
Securelist
S
Secure Thoughts
Google DeepMind News
Google DeepMind News
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
T
Tailwind CSS Blog
Apple Machine Learning Research
Apple Machine Learning Research
酷 壳 – CoolShell
酷 壳 – CoolShell
Stack Overflow Blog
Stack Overflow Blog
N
Netflix TechBlog - Medium
Cyberwarzone
Cyberwarzone
小众软件
小众软件
T
Threatpost
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Blog — PlanetScale
Blog — PlanetScale
N
News and Events Feed by Topic
NISL@THU
NISL@THU
Forbes - Security
Forbes - Security
博客园 - 聂微东
F
Fortinet All Blogs
Simon Willison's Weblog
Simon Willison's Weblog
H
Heimdal Security Blog
罗磊的独立博客
S
Security @ Cisco Blogs
B
Blog
T
Troy Hunt's Blog
Engineering at Meta
Engineering at Meta
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
The Hacker News
The Hacker News
The Last Watchdog
The Last Watchdog
Hacker News - Newest:
Hacker News - Newest: "LLM"
I
Intezer
T
Threat Research - Cisco Blogs
C
Cybersecurity and Infrastructure Security Agency CISA
The Cloudflare Blog
S
Schneier on Security
月光博客
月光博客
L
LINUX DO - 热门话题
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org

lvbibir's Blog

shell | 磁盘空间分析脚本 Linux cat 和 tee 命令写入文件 python | 使用 uv 管理你的 python 环境 Claude Code 完整配置指南 windows | mihomo 内核独立部署指南 linux | 磁盘扩容 wsl | 释放长久运行占用的磁盘空间 mysql | 线程上限问题处理 麒麟 7.6 安装谷歌 OTP 认证模块 suse 12sp5 升级 openssh 及 openssl suse 12sp5 部署 mysql 5.7 《谁的青春不迷茫》 docker | centos7 部署 docker vim | 基础配置和使用 windows | rime 输入法 & 雾凇方案 shell | sshpass 批量传输文件及执行命令 wsl | 原生 linux 方式安装 docker nodejs | fnm + pnpm 开发环境配置 wsl | 安装配置 miniconda 虚拟环境 wsl | 自动更新系统代理 wsl | bashrc 环境变量不正确加载的处理方法 wsl | win10 安装 wsl2 troubleshooting | ssh 成功但是 scp 失败 linux | 常用命令总结 docker 部署 piclist shell | 检测网站存活并自动钉钉告警 Zabbix | 监控端口连通性并自动追踪 TCP 路由 windows | 自定义开机快速启动项 windows | miniconda 配置 python 虚拟环境 Zabbix | 监控主机到指定 ip 的流量大小 shell | centos 初始化 loki (二) 部署 loki (一) 简介 prometheus (六) Alertmanager prometheus (五) 记录规则与告警规则 prometheus (四) 黑盒监控 prometheus (三) 服务发现 prometheus (二) 静态配置 prometheus (一) 简介及部署 traefik (四) TraefikService 服务 traefik (三) Middleware 中间件 traefik (二) ingressRoute 路由 traefik (一) 简介、部署和配置 kubernetes | Gateway API 简介及部署 linux | dns 配置文件中 search 和 options ndots 详解 kubernetes | command args 和 dockerfile 中的 ENTRYPOINT CMD kubernetes | statefulset 控制器详解 docker | dockerfile 最佳实践 docker | dockerfile 指令详解 linux | kill 命令详解以及 linux 中的信号 troubleshooting | elasticsearch 安装插件报错 shell | if 条件判断 docker | 下载外网镜像的几种方式 python | 鬼谷子数学问题 steam挂刀教程 linux | history 命令的格式化输出 shell | 将本地镜像批量推送到 harbor windows | hosts 文件修复 kubernetes | configmap & secret kubernetes | RBAC 鉴权和 NetworkPolicy kubernetes | service & ingress kubernetes | 存储 kubernetes | 滚动升级和自动伸缩 kubernetes | 控制器 kubernetes | 日志 kubernetes | 调度 kubernetes | pod kubernetes | 杂记 linux | set 命令详解 ceph | openeuler 部署 ceph-v16 ceph | ceph-v16 离线安装解决方案 pxe 如何应对复杂的服务器硬件环境 python | 批量修改目录下文件名 《微习惯》 ceph | openeuler (aarch64) 部署 ceph-v16 troubleshooting | glibc 误升级后修复 pxe 安装配置大全 《人间失格》 跑步日常 [置顶] Hello, hugo! shell | 检索某 url 中所有文件的内容 shell | 不同执行方式的区别 shell | 开启 debug 模式 vscode | 常见问题 windows & linux 多网卡时设置默认路由以及添加静态路由 mysql (二) 主从复制原理 GTID 并行复制 mysql (一) 部署 mysql | 杂记 cicd | jenkins 部署 mall-swarm 项目 httpd 源码打包编译成 rpm 包 openssl 源码打包编译成 rpm 包 centos7 | 修改网卡名称 ceph | pool pg_num 配置 docker | 脚本方式批量导出/导入镜像 centos 密码尝试次数过多问题处理 centos7 | 升级内核至 5.10 CVE-1999-0526 ceph | centos7 部署 ceph-v12 python | 修改 pip 源 troubleshooting | 安装 cloud-init 后导致 ssh 连接失败
docker | 三剑客之 swarm
lvbibir · 2019-08-01 · via lvbibir's Blog

0 前言

本文参考以下链接:

1 部署

1.1 环境准备

  1. 准备 3 台 Ubuntu 系统主机 (即用于搭建集群的 3 个 Docker 机器),每台机器上都需要安装 Docker 并且可以连接网络,同时要求 Docker 版本必须是 1.12 及以上,因为老版本不支持 Docker Swarm
  2. 集群管理节点 Docker 机器的 IP 地址必须固定,集群中所有节点都能够访问该管理节点。
  3. 集群节点之间必须使用相应的协议并保证其以下端口可用:
    • 用于集群管理通信的 TCP 端口 2377;
    • TCP 和 UDP 端口 7946,用于节点间的通信;
    • UDP 端口 4789,用于覆盖网络流量

为了进行本实例演示,此处按照要求安装了 3 台使用 centos7.4 系统的机器,这三台机器的主机名称分别为 manager1(作为管理节点),worker1(作为工作节点),worker2(作为工作节点),其 IP 地址分别如下:

主机名 IP 地址
manager 192.168.0.101
worker-1 192.168.0.102
worker-2 192.168.0.103

1.2 创建集群

在 manager 上创建 swarm 集群

[root@node-1 ~]# docker swarm init --advertise-addr 192.168.0.101

使用 docker node ls 查看集群节点信息

[root@manager ~]# docker node ls

在这里插入图片描述

1.3 添加工作节点

在 worker1 和 worker2 中执行,加入 swarm 集群

docker swarm join --token SWMTKN-1-2zhqxsklcroivbpjzzntn5snsim79o5z7xzj4hzexk9phsz68q-d0seaxjgxpjebk8fdqt6d6yz5 192.168.0.101:2377

在这里插入图片描述

在这里插入图片描述

在管理节点上,使用 docker node ls 查看集群节点信息

[root@manager ~]# docker node ls

在这里插入图片描述

1.4 部署服务

在向 docker swarm 集群中部署服务时,既可以使用 docker hub 上自带的镜像来启动服务,也可以自己通过 dockerfile 的镜像来启动服务,如果使用自己的 dockerfile 构建的镜像来启动服务,那么必须先将镜像推送到 docker hub 中心仓库

这里,我们使用 docker hub 上自带的 alpine 镜像为例来部署集群服务

[root@manager ~]# docker service create --replicas 1 --name helloworld alpine ping docker.com

在这里插入图片描述

1.5 查看服务

当服务部署完成后,在管理节点上可以通过 docker service ls 查看当前集群中的服务列表信息

[root@manager ~]# docker service ls

在这里插入图片描述

使用 docker service inspect 查看部署的服务具体详情

[root@manager ~]# docker service inspect helloworl

使用 docker service ps 查看指定服务在集群节点上的分配和运行情况

[root@manager ~]# docker service ps helloworld

在这里插入图片描述

1.6 更改副本数量

在集群中部署的服务,如果只运行一个副本,就无法体现出集群的优势,并且一旦该机器或副本崩溃,该服务将无法访问,所以通常一个服务会启动多个副本

[root@manager ~]# docker service scale helloworld=5

在这里插入图片描述

更改完成后,就可以谈过 docker service ps 查看这五个服务副本在 3 个节点上的具体分布和运行情况

[root@manager ~]# docker service ps helloworld

在这里插入图片描述

1.7 删除服务

对于不需要的服务,我们可以进行删除

[root@manager ~]# docker service rm helloworld

1.8 访问服务

在管理节点上,执行 docker network ls 查看网络列表

[root@manager ~]# docker network ls

在这里插入图片描述

在管理节点上,创建 overlay 网络

[root@manager ~]# docker network create -d overlay ov_net

在管理节点上,再次部署服务

[root@manager ~]# docker service  create --network ov_net --name my-web --publish 8080:80 --replicas 2 nginx

在这里插入图片描述

访问 nginx 服务

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

以上