IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> docker swarm集群---基础设施篇 -> 正文阅读

[系统运维]docker swarm集群---基础设施篇

前端时间一直在研究docker相关技术,想把他用在我最近的项目上,最开始想使用的kubernates,但是不知道为什么一直下载不下来相关镜像,科学上网都没用,于是转战docker swarm,并且在学校的四个免费的2C4G服务器上搭建了一个实验性质的集群,最近打算把这个实验性质的集群转移到生产环境中,并将其中的一些过程记录下来。
简单说下我目前用这种方式之后的好处吧

  • 第一是简化了部署,再不需要打包、选择可用节点上传,最后运行这种方式了,现在都是一键然后集群根据目前的负载情况自行选择服务部署节点。
  • 第二是简化了运维,平时都是服务出了问题,收到报告,然后登录服务器,手动重启服务,但是现在服务会在崩溃之后自启。
  • 第三是可伸缩,可以根据需求来选择服务的副本,而且节点增加也不用去重新配置Java、MySQL、Python等环境,只需要安装docker即可。

目前只想到了以上三个优势吧,不过我觉得已经很足够了。
本文所有节点的操作系统均为Ubuntu 18.04

1.docker的安装

首先需要在各台机器上都安装docker环境,使用如下命令都可以安装好了

curl -sSL https://get.daocloud.io/docker | sh

接下来需要修改/etc/docker/daemon.json文件,修改它有两个目的,第一是为了加快镜像的下载速度,另外一个原因是docker0接口会占用ip地址172.17.0.0/24,由此可能导致内网环境下登录不上服务器,因此需要配置让docker0去占用其他的ip。

sudo vim /etc/docker/daemon.json

编辑为如下的内容

{
"bip" : "192.168.200.1/24",
"mtu" : 1400,
"registry-mirrors": ["https://pee6w651.mirror.aliyuncs.com","http://hub-mirror.c.163.com", "https://registry.docker-cn.com"]
}

然后用如下命令使修改生效

sudo apt-get install bridge-utils
sudo systemctl stop docker
sudo ip link set dev docker0 down
sudo brctl delbr docker0
sudo systemctl start docker

最后将用户添加到docker组中,这样执行docker相关的命令就不需要sudo了。

# 添加docker用户组,一般已存在,不需要执行
sudo groupadd docker
# 将登陆用户加入到docker用户组中
sudo gpasswd -a $USER docker
# 更新用户组
newgrp docker
# 测试docker命令是否可以脱离sudo正常使用
docker version

到这里docker安装完毕。

2.创建docker swarm集群

这里假设有一个主节点,IP为A,一个从节点,IP为B

首先需要开放2375端口来方便portainer进行管理,这里至少需要给从节点配置,主节点不配置似乎也可以正常使用

sudo cp /lib/systemd/system/docker.service /lib/systemd/system/docker.service.bak
sudo vim /lib/systemd/system/docker.service
# 找到ExecStart行改成这样的: ExecStart=/usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:2375
sudo systemctl daemon-reload
sudo systemctl restart docker

2.1.主节点配置

运行如下命令来初始化集群

docker swarm init --advertise-addr A

会得到如下输出

在这里插入图片描述

2.2.从节点配置

让其他节点加入swarm集群,这里如果是内网环境的话,只需要执行主节点执行初始化集群之后输出的那一行命令即可,但是这里是使用公网环境的,所以需要指定公网的nodeIP

docker swarm join --token SWMTKN-1-0fgcvcltafdsafdsafdsafdsaed5b4skmash31l2c0jyvus44z-77uyqrafdsafdsad5ia602oyy A:2377  --advertise-addr B:2377

这里参考了公网情况下的docker swarm搭建,更细节的内容可以参考这篇博文,使用公网环境时,需要保证TCP2377,TCP7946,TCP4789与UDP7946和UDP4789被放通。

3.管理程序服务安装

这里我使用了两个服务来对集群进行监控和管理,visualizer和portainer。

3.1.visualizer

用如下命令启动visualizer服务

docker service create --replicas 1 --mount type=bind,target=/var/run/docker.sock,source=/var/run/docker.sock --name visualizer -p 8080:8080 dockersamples/visualizer

然后访问http://A:8080,可以看到各节点部署的容器。

在这里插入图片描述

3.2.portainer

接下来是portainer,这是一个更加全面的管理工具,可以对各节点的服务、镜像、容器等进行管理。

利用如下命令启动portainer服务,该服务需要在主节点运行。

docker pull portainer/portainer	# 拉取portainer镜像
mkdir portainer_data # 创建数据文件夹
docker run -d -p 8000:8000 -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v /home/zekdot/portainer_data:/data portainer/portainer	# 启动容器

启动之后访问浏览器http://A:9000,可以看到要求创建一个账户的窗口,输入密码与确认密码后点击下一步

在这里插入图片描述

然后这里选择local,直接连接。

在这里插入图片描述

然后点击Endpoints那一个条目,再点击Add endpoint来增加对从节点B的管理

在这里插入图片描述

选择Docker项,输入B相关信息之后点击Add endpoint。

在这里插入图片描述

然后可以看到两个节点都在管理之下了。

在这里插入图片描述

到这里基础的管理和运行环境就配置好了。

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-08-01 14:51:53  更:2021-08-01 14:53:13 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/27 11:12:56-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计