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 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 微服务自动化之集群的搭建 -> 正文阅读

[系统运维]微服务自动化之集群的搭建

一、准备工作:

二、 搭建etcd集群

etcd构建自身高可用集群主要有三种形式:

  • 静态发现: 预先已知etcd集群中有哪些节点,在启动时通过--initial-cluster参数直接指定好etcd的各个节点地址
  • etcd动态发现:

静态配置前提是在搭建集群之前已经提前知道各节点的信息,而实际应用中可能存在预先并不知道各节点ip的情况,这时可通过已经搭建的etcd来辅助搭建新的etcd集群。通过已有的etcd集群作为数据交互点,然后在扩展新的集群时实现通过已有集群进行服务发现的机制。比如官方提供的:discovery.etcd.io

  • DNS动态发现: 通过DNS查询方式获取其他节点地址信息

1、集群搭建

  • 安装服务(etcd的安装)
  • 编辑etcd.conf文件,添加集群信息注意修改对应的ip

etcd.conf1

#########################################################
###### ?请根据各节点实际情况修改配置:1/3/4/5/6/7 ?######
#########################################################
#[Member]
#1.节点名称,必须唯一
ETCD_NAME="etcd01"

#2.设置数据保存的目录
ETCD_DATA_DIR="/var/lib/etcd"

#3.用于监听其他etcd member的url
ETCD_LISTEN_PEER_URLS="http://192.168.44.138:2380"

#4.该节点对外提供服务的地址
ETCD_LISTEN_CLIENT_URLS="http://192.168.44.138:2379,http://127.0.0.1:2379"

#[Clustering]
#5.对外公告的该节点客户端监听地址
ETCD_ADVERTISE_CLIENT_URLS="http://192.168.44.138:2379"

#6.该节点成员对等URL地址,且会通告集群的其余成员节点
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.44.138:2380"

#7.集群中所有节点的信息
ETCD_INITIAL_CLUSTER="etcd01=http://192.168.44.138:2380,etcd02=http://192.168.44.139:2380"

#8.创建集群的token,这个值每个集群保持唯一
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"

#9.初始集群状态,新建集群的时候,这个值为new;
ETCD_INITIAL_CLUSTER_STATE="new"

#10.flannel操作etcd使用的是v2的API,而kubernetes操作etcd使用的v3的API
# ? 为了兼容flannel,将默认开启v2版本,故配置文件中设置?
ETCD_ENABLE_V2="true"

?etcd.conf2

?#########################################################
###### ?请根据各节点实际情况修改配置:1/3/4/5/6/7 ?######
#########################################################
#[Member]
#1.节点名称,必须唯一
ETCD_NAME="etcd02"

#2.设置数据保存的目录
ETCD_DATA_DIR="/var/lib/etcd"

#3.用于监听其他etcd member的url
ETCD_LISTEN_PEER_URLS="http://192.168.44.139:2380"

#4.该节点对外提供服务的地址
ETCD_LISTEN_CLIENT_URLS="http://192.168.44.139:2379,http://127.0.0.1:2379"

#[Clustering]
#5.对外公告的该节点客户端监听地址
ETCD_ADVERTISE_CLIENT_URLS="http://192.168.44.139:2379"

#6.该节点成员对等URL地址,且会通告集群的其余成员节点
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.44.139:2380"

#7.集群中所有节点的信息
ETCD_INITIAL_CLUSTER="etcd01=http://192.168.44.138:2380,etcd02=http://192.168.44.139:2380"

#8.创建集群的token,这个值每个集群保持唯一
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"

#9.初始集群状态,新建集群的时候,这个值为new;
ETCD_INITIAL_CLUSTER_STATE="new"

#10.flannel操作etcd使用的是v2的API,而kubernetes操作etcd使用的v3的API
# ? 为了兼容flannel,将默认开启v2版本,故配置文件中设置?
ETCD_ENABLE_V2="true"

修改/etc/etcd/etcd.conf文件后,要先删除/var/lib/etcd目录下保存的数据,再重新启用服务,不然失败

cd /var/lib/etcd && rm -rf *

  • 为节点etcd01创建一个etcd服务 /etc/systemd/system/etcd.service

?etcd.service

[Unit]
Description=Etcd Server
Documentation=https://github.com/etcd-io/etcd
After=network.target

[Service]
User=root
Type=notify
## 根据实际情况修改EnvironmentFile和ExecStart这两个参数值
## 1.EnvironmentFile即配置文件的位置,注意“-”不能少
EnvironmentFile=-/etc/etcd/etcd.conf
## 2.ExecStart即etcd启动程序位置
ExecStart=/usr/local/bin/etcd
Restart=always
RestartSec=10s
LimitNOFILE=65536

[Install]
WantedBy=multi-user.target

  • 刷新

systemctl daemon-reload

  • 因为需要跨主机通信,需要开放防火墙端口

firewall-cmd --zone=public --add-port=2379/tcp --permanent? 开启2379
firewall-cmd --zone=public --add-port=2380/tcp --permanent 开启2380
firewall-cmd --reload? ?重启
firewall-cmd --list-port? 查看开启防火墙的端口

?

??

然后启动?

  • 启动可能报错信息

master-16 etcd[25461]: request cluster ID mismatch (got bdd7c7c32bde1208 want 698851d67fea3c17)

原因: 集群ip地址变化后,除了修改/etc/etcd/etcd.conf 文件并重新启用服务外,还需要删除/var/lib/etcd目录下保存的数据
解决办法 :删除了etcd集群所有节点中的--data_dir的内容

  • 服务相关指令

systemctl daemon-reload? 刷新
systemctl enable etcd? 启动
systemctl start etcd? ?启动
systemctl status etcd? 查看状态
systemctl stop etcd? 停止
systemctl restart etcd? 重启

在另一台虚拟机做同样操作

2.集群测试

各节点重启启动完成后,在任意节点执行etcdctl member list可列所有集群节点信息

etcdctl member list
etcdctl member list -w table
etcdctl endpoint health
etcdctl endpoint status

http命令

?etcdctl --endpoints=http://192.168.44.139:2379,http://192.168.44.139:2379,http://192.168.44.139:2379 endpoint health
etcdctl --endpoints=http://192.168.44.139:2379 endpoint health? ?
etcdctl --endpoints=http://192.168.44.139:2379 member list -w table

?

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-03-04 16:00:29  更:2022-03-04 16:04:42 
 
开发: 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年11日历 -2024/11/16 3:37:40-

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