统信UOS怎么安装Etcd集群_统信UOS etcd分布式键值存储部署教程【高级】

老伟大大_4085

老伟大大_4085

2026-04-12

692人浏览

原创

统信uos部署etcd集群问题多因监听地址、权限、环境变量或防火墙导致;推荐三种方法:一、apt安装单节点(快速验证);二、二进制部署三节点ha集群(生产首选);三、docker容器化部署(隔离灵活)。

统信uos怎么安装etcd集群_统信uos etcd分布式键值存储部署教程【高级】

如果您在统信UOS系统上部署Etcd集群时遇到节点无法加入、客户端连接拒绝或etcdctl命令静默失败等问题,则很可能是由于默认监听地址、权限缺失、环境变量未生效或防火墙策略导致。以下是针对统信UOS平台的多种可行部署方法:

一、使用apt包管理器安装并配置单节点基础集群

统信UOS基于Debian/Ubuntu生态,可直接通过apt安装etcd官方维护包,适合快速验证与开发测试环境。该方式自动处理依赖、服务注册与基础配置,但版本可能略滞后于GitHub最新稳定版。

1、更新软件源并安装etcd:
sudo apt update && sudo apt install -y etcd

2、修改默认配置文件 /etc/default/etcd,取消注释并设置以下关键项:
ETCD_NAME=etcd1
ETCD_DATA_DIR="/var/lib/etcd"
ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379"
ETCD_ADVERTISE_CLIENT_URLS="http://127.0.0.1:2379"
ETCD_LISTEN_PEER_URLS="http://127.0.0.1:2380"
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://127.0.0.1:2380"
ETCD_INITIAL_CLUSTER="etcd1=http://127.0.0.1:2380"
ETCD_INITIAL_CLUSTER_STATE="new"

3、为etcd用户赋予数据目录完整权限:
sudo chown -R etcd:etcd /var/lib/etcd

4、启用并启动服务:
sudo systemctl daemon-reload && sudo systemctl enable etcd && sudo systemctl start etcd

5、验证监听状态:
sudo ss -tlnp | grep ':2379',确认输出中包含 *:2379 而非 127.0.0.1:2379

二、二进制方式部署三节点高可用集群(推荐生产环境)

此方法完全控制版本、路径与启动参数,适配统信UOS的国产化内核与安全加固策略。所有节点需预先完成主机名解析、时间同步、SSH免密及防火墙放行(2379/2380端口)。

1、在每台节点(如uos-node1/uos-node2/uos-node3)下载v3.5.4稳定版:
wget https://github.com/etcd-io/etcd/releases/download/v3.5.4/etcd-v3.5.4-linux-amd64.tar.gz

2、解压并复制二进制文件到系统路径:
tar -xvf etcd-v3.5.4-linux-amd64.tar.gz && cd etcd-v3.5.4-linux-amd64 && sudo cp etcd etcdctl /usr/local/bin/

3、为二进制文件添加执行权限:
sudo chmod +x /usr/local/bin/etcd /usr/local/bin/etcdctl

4、创建etcd专用用户与目录:
sudo useradd -r -c "etcd user" -d /var/lib/etcd -s /sbin/nologin etcd
sudo mkdir -p /var/lib/etcd /etc/etcd

5、设置环境变量(写入/etc/profile):
echo 'export ETCDCTL_API=3' | sudo tee -a /etc/profile && source /etc/profile

6、按节点分别编写systemd服务文件 /etc/systemd/system/etcd.service,其中uos-node1示例内容如下:
[Unit]
Description=etcd
After=network.target
[Service]
Type=notify
User=etcd
ExecStart=/usr/local/bin/etcd \
--name=etcd1 \
--data-dir=/var/lib/etcd \
--listen-client-urls=http://0.0.0.0:2379 \
--advertise-client-urls=http://192.168.183.10:2379 \
--listen-peer-urls=http://192.168.183.10:2380 \
--initial-advertise-peer-urls=http://192.168.183.10:2380 \
--initial-cluster=etcd1=http://192.168.183.10:2380,etcd2=http://192.168.183.11:2380,etcd3=http://192.168.183.12:2380 \
--initial-cluster-token=etcd-cluster-1 \
--initial-cluster-state=new
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target

7、同步配置后,在全部节点依次执行:
sudo systemctl daemon-reload && sudo systemctl enable etcd && sudo systemctl start etcd

8、集群健康检查(任一节点执行):
etcdctl --endpoints=http://192.168.183.10:2379,http://192.168.183.11:2379,http://192.168.183.12:2379 endpoint health --command-timeout=5s,所有输出必须含 is healthy

三、容器化部署(基于统信UOS内置Docker)

利用Docker在统信UOS上隔离运行etcd实例,避免宿主系统污染,便于版本滚动与资源限制。要求已安装并启用Docker服务(uos-docker或社区版均可)。

1、拉取官方etcd镜像(注意架构匹配):
docker pull quay.io/coreos/etcd:v3.5.4

2、为三节点集群创建独立网络:
docker network create etcd-net

3、启动第一个节点(uos-node1):
docker run -d \
--name etcd1 \
--network etcd-net \
--publish 2379:2379 \

4、启动第二、三节点(分别替换--name和--advertise-client-urls为etcd2/etcd3及对应IP):
docker run -d --name etcd2 --network etcd-net --publish 23791:2379 --publish 23801:2380 --volume /opt/etcd2:/etcd-data --restart always quay.io/coreos/etcd:v3.5.4 etcd --name etcd2 --data-dir /etcd-data --listen-client-urls http://0.0.0.0:2379 --advertise-client-urls http://etcd2:2379 --listen-peer-urls http://0.0.0.0:2380 --initial-advertise-peer-urls http://etcd2:2380 --initial-cluster etcd1=http://etcd1:2380,etcd2=http://etcd2:2380,etcd3=http://etcd3:2380 --initial-cluster-token etcd-cluster-1 --initial-cluster-state new

5、在宿主机安装etcdctl v3.5.4二进制,并设置endpoint指向容器网络:
etcdctl --endpoints=http://etcd1:2379,http://etcd2:2379,http://etcd3:2379 endpoint status,成功返回即表明容器集群就绪,且各节点Member ID应互不相同

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
什么是分布式
什么是分布式

分布式是一种计算和数据处理的方式,将计算任务或数据分散到多个计算机或节点中进行处理。本专题为大家提供分布式相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.11

2053

5

分布式和微服务的区别
分布式和微服务的区别

分布式和微服务的区别在定义和概念、设计思想、粒度和复杂性、服务边界和自治性、技术栈和部署方式等。本专题为大家提供分布式和微服务相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.07

3134

5

登录token无效
登录token无效

登录token无效解决方法:1、检查token的有效期限,如果token已经过期,需要重新获取一个新的token;2、检查token的签名,如果签名不正确,需要重新获取一个新的token;3、检查密钥的正确性,如果密钥不正确,需要重新获取一个新的token;4、使用HTTPS协议传输token,建议使用HTTPS协议进行传输 ;5、使用双因素认证,双因素认证可以提高账户的安全性。

2023.09.14

13806

6

登录token无效怎么办
登录token无效怎么办

登录token无效的解决办法有检查Token是否过期、检查Token是否正确、检查Token是否被篡改、检查Token是否与用户匹配、清除缓存或Cookie、检查网络连接和服务器状态、重新登录或请求新的Token、联系技术支持或开发人员等。本专题为大家提供token相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.14

1645

5

token怎么获取
token怎么获取

获取token值的方法:1、小程序调用“wx.login()”获取 临时登录凭证code,并回传到开发者服务器;2、开发者服务器以code换取,用户唯一标识openid和会话密钥“session_key”。想了解更详细的内容,可以阅读本专题下面的文章。

2023.12.21

3777

3

token什么意思
token什么意思

token是一种用于表示用户权限、记录交易信息、支付虚拟货币的数字货币。可以用来在特定的网络上进行交易,用来购买或出售特定的虚拟货币,也可以用来支付特定的服务费用。想了解更多token什么意思的相关内容可以访问本专题下面的文章。

2024.03.01

5941

5

default gateway怎么配置
default gateway怎么配置

配置default gateway的步骤:1、了解网络环境;2、获取路由器IP地址;3、登录路由器管理界面;4、找到并配置WAN口设置;5、配置默认网关;6、保存设置并退出;7、检查网络连接是否正常。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.12.07

357

5

github中文官网入口 github中文版官网网页进入
github中文官网入口 github中文版官网网页进入

github中文官网入口https://docs.github.com/zh/get-started,GitHub 是一种基于云的平台,可在其中存储、共享并与他人一起编写代码。 通过将代码存储在GitHub 上的“存储库”中,你可以: “展示或共享”你的工作。 持续“跟踪和管理”对代码的更改。

2026.01.21

8545

27

GitHub官网入口版本汇总
GitHub官网入口版本汇总

本专题整合了GitHub入口版本地址汇总,阅读专题下面的文章了解更多详细内容。

2026.04.02

878

19

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.7万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 133.8万人学习