搭建etcd集群(代码片段)

絮雨清风 絮雨清风     2022-12-10     597

关键词:

  最近分布式项目开发中用到订阅/通知机制,经过选型决定采用etcd,在调研etcd使用方式、订阅/通知方案过程中遇到很多问题,这里做下简单记录。

本系列总共3篇:

  1. 《搭建etcd集群》:介绍搭建etcd集群方式、遇到的问题及处理方式;
  2. 《编译安装etcd-cpp-apiv3》:介绍etcd-cpp-apiv3编译安装方式、常见问题及处理方式;
  3. 《etcd-cpp-apiv3使用实例介绍》:介绍如何通过etcd-cpp-apiv3建立与etcd集群的连接,订阅etcd消息。

 本文是第1篇 《搭建etcd集群》

参考:https://developer.aliyun.com/article/623228


1. 节点信息

  以搭建3节点的etcd集群为例。节点信息如下:

集群节点节点1节点2节点3
IP地址192.168.61.135192.168.61.136192.168.61.137
hostnameCBFS2CBFS3CBFS4

2. 下载etcd

root@cbfs2 ~]# wget https://github.com/coreos/etcd/releases/download/v3.4.10/etcd-v3.4.10-linux-amd64.tar.gz

3. 安装etcd

[root@cbfs2 ~]# tar -xzf etcd-v3.4.10-linux-amd64.tar.gz
[root@cbfs2 ~]# cd etcd-v3.4.10-linux-amd64/
[root@cbfs2 etcd-v3.4.10-linux-amd64]# ls
Documentation  etcd  etcdctl  README-etcdctl.md  README.md  READMEv2-etcdctl.md
# 将etcd,etcdctl,将它们复制到/usr/local/bin目录下
[root@cbfs2 etcd-v3.4.10-linux-amd64]# cp etcd* /usr/local/bin/

4. 配置systemctl方式启动

  创建/etc/systemd/etcd.service,键入:

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

[Service]
User=root
Type=notify
EnvironmentFile=/etc/etcd/etcd.conf
ExecStart=/usr/local/bin/etcd
Restart=on-failure
RestartSec=10s
LimitNOFILE=40000

[Install]
WantedBy=multi-user.target

  按照步骤2,3,4,依次在节点1、2、3安装etcd.

5. etcd配置文件

5.1 节点1配置文件

[root@cbfs2 ~]# cat /etc/etcd/etcd.conf
ETCD_NAME="etcd1"
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_CLIENT_URLS="http://192.168.61.135:2379,http://127.0.0.1:2379"
ETCD_ADVERTISE_CLIENT_URLS="http://192.168.61.135:2379,http://127.0.0.1:2379"

ETCD_LISTEN_PEER_URLS="http://192.168.61.135:2380"
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.61.135:2380"
ETCD_INITIAL_CLUSTER="etcd1=http://192.168.61.135:2380,etcd2=http://192.168.61.136:2380,etcd3=http://192.168.61.137:2380"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"
ETCD_INITIAL_CLUSTER_STATE="new"

5.2 节点2配置文件

[root@cbfs3 ~]# cat /etc/etcd/etcd.conf
ETCD_NAME="etcd2"
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_CLIENT_URLS="http://192.168.61.136:2379,http://127.0.0.1:2379"
ETCD_ADVERTISE_CLIENT_URLS="http://192.168.61.136:2379,http://127.0.0.1:2379"

ETCD_LISTEN_PEER_URLS="http://192.168.61.136:2380"
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.61.136:2380"
ETCD_INITIAL_CLUSTER="etcd1=http://192.168.61.135:2380,etcd2=http://192.168.61.136:2380,etcd3=http://192.168.61.137:2380"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"
ETCD_INITIAL_CLUSTER_STATE="new"

5.3 节点3配置文件

[root@cbfs4 ~]# cat /etc/etcd/etcd.conf
ETCD_NAME="etcd3"
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_CLIENT_URLS="http://192.168.61.137:2379,http://127.0.0.1:2379"
ETCD_ADVERTISE_CLIENT_URLS="http://192.168.61.137:2379,http://127.0.0.1:2379"

ETCD_LISTEN_PEER_URLS="http://192.168.61.137:2380"
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.61.137:2380"
ETCD_INITIAL_CLUSTER="etcd1=http://192.168.61.135:2380,etcd2=http://192.168.61.136:2380,etcd3=http://192.168.61.137:2380"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"
ETCD_INITIAL_CLUSTER_STATE="new"



6. 启动etcd

[root@cbfs2 ~]# systemctl daemon-reload;systemctl start ctdb

  节点1、2、3分别启动etcd服务。

7. 查看所有member信息:

[root@cbfs2 ~]# etcdctl -w="table" member list



8. 问题记录

8.1 etcdctl member list报connect: connection refused

如果不写127.0.0.1或localhost 在测试时 回环地址将被拒绝链接。
解决方式:添加 http://127.0.0.1:2379


kubernetes学习一:kubernetes集群搭建之etcd安装部署(代码片段)

目录1、软件版本和环境介绍2、服务器信息介绍(以下称主机名)3、etcd安装部署3.1、cfssl安装3.2、创建etcd证书3.3、etcdca配置3.4、etcdca证书3.5、etcdserver证书3.6、生成etcdca证书和私钥初始化ca3.7、生成server证书3.8、下发证书... 查看详情

k8s------kubernetes单master集群二进制搭建(代码片段)

目录前言Kubernetes单Master节点集群二进制部署一.Kubernetes单Master集群架构二.环境准备三.Etcd集群部署1.准备签发证书环境2.生成CA证书、etcd服务器证书以及私钥3.安装Etcd4.在Master01节点启动Etcd集群节点015.将证书,命令文件,... 查看详情

k8s------kubernetes单master集群二进制搭建(代码片段)

目录前言Kubernetes单Master节点集群二进制部署一.Kubernetes单Master集群架构二.环境准备三.Etcd集群部署1.准备签发证书环境2.生成CA证书、etcd服务器证书以及私钥3.安装Etcd4.在Master01节点启动Etcd集群节点015.将证书,命令文件,... 查看详情

架构师面试题库1—etcd高可用集群搭建(代码片段)

环境准备操作系统:CentOS7搭建一个三节点的etcd集群机器名:etcd01IP地址:192.168.154.133机器名:etcd03IP地址:192.168.154.145机器名:etcd04IP地址:192.168.154.146etcd包下载安装1、下载https://github.com/etcd-io/etcd/releases/download/v3.3.1/etcd-v3.3.1-linux-amd... 查看详情

2二进制方式搭建k8s集群(代码片段)

本文介绍单/多Master的K8S集群搭建全过程。 目录1环境要求、节点规划、配置1.1环境要求1.2节点规划1.3操作系统初始化配置2ETCD集群部署2.1 准备cfssl证书生成工具2.2 生成ETCD证书2.3下载ETCD的二进制文件2.4部署ETCD集群3安装Docker4部... 查看详情

云原生|kubernetes篇自建高可用k8s集群搭建(代码片段)

文末有惊喜文章目录自建高可用k8s集群搭建一、所有节点基础环境1、环境准备与内核升级2、安装Docker二、PKI三、证书工具准备1、下载证书工具2、ca根配置3、ca签名请求4、生成证书5、k8s集群是如何使用证书的四、etcd高可用搭建... 查看详情

使用docker运行etcd单实例/集群(代码片段)

...用端口映射b.使用vpn参考一.介绍本文描述了如何使用docker搭建etcd集群,github/etcd上有单实例etcd服务的搭建方法,包括linux,mac,docker。在操作之前你需要安装dockerdocker-compose是可选的,如果你不想使用docker-compose就跳过他二.etcd单... 查看详情

kubernetes集群之二进制安装部署(单master节点)(代码片段)

...ETCD集群3.1ETCD介绍3.2准备CFSSL证书签发环境3.3环境部署3.3.1搭建ETCD步骤3.3.2下载准备CFSSL证书制作工具3.3.3上传etcd-cert.sh和etcd.sh到/opt/k8s/目录中3.3.4安装ETCD服务3.3.5配置ETCD集群3.3.6在Master01节点上操作验证etcd集群状态四、 查看详情

linux企业运维——k8s高可用集群架构搭建详解(代码片段)

...高可用集群架构原理二、实验环境三、K8s高可用集群架构搭建3.1、负载均衡Loadbalancer部署—haproxy3.2、Docker部署3.3、K8s集群部署3.4、K8s集群添加worker节点四、集群高可用性能测试一、K8s高可用集群架构原理Kubernetes的存储层使用的... 查看详情

编译etcd-cpp-apiv3(代码片段)

...多问题,这里做下简单记录。本系列总共3篇:《搭建etcd集群》:介绍搭建etcd集群方式、遇到的问题及处理方式;《编译安装etcd-cpp-apiv3》:介绍etcd-cpp-api 查看详情

2etcd单机部署和集群部署(代码片段)

...加确切的认识。1、etcd单实例部署对于平常的学习,其实搭建一个单机节点是够了的。接下来就讲讲怎么搭建单机节点。本次部署是在centos7系统,cpu为amd64上面进行的。部署是直接使用官方编译好的二进制文件,大家也可以直接... 查看详情

k8s------kubernetes单master集群二进制搭建(代码片段)

目录前言Kubernetes单Master节点集群二进制部署一.Kubernetes单Master集群架构二.环境准备三.Etcd集群部署1.准备签发证书环境2.生成CA证书、etcd服务器证书以及私钥3.安装Etcd4.在Master01节点启动Etcd集群节点015.将证书,命令文件,... 查看详情

etcd集群搭建

1、集群主机名ip配置etcd-01192.168.1.618C/16G/100Getcd-02192.168.1.62 8C/16G/100Getcd-03192.168.1.63 8C/16G/100G2、配置etcd集群1>hosts文件[root@k01~]#cat/etc/hosts127.0.0.1localhostlocalhost.localdomainlocalhost4l 查看详情

etcd-cpp-apiv3使用示例介绍(代码片段)

...多问题,这里做下简单记录。本系列总共3篇:《搭建etcd集群》:介绍搭建etcd集群方式、遇到的问题及处理方式;《编译安装etcd-cpp-apiv3》:介绍etcd-cpp-apiv3编译安装方式、常见问题及处理方式;《etcd-cpp-ap... 查看详情

etcd-cpp-apiv3使用示例介绍(代码片段)

...多问题,这里做下简单记录。本系列总共3篇:《搭建etcd集群》:介绍搭建etcd集群方式、遇到的问题及处理方式;《编译安装etcd-cpp-apiv3》:介绍etcd-cpp-api 查看详情

linux企业运维——k8s高可用集群架构搭建详解(代码片段)

...高可用集群架构原理二、实验环境三、K8s高可用集群架构搭建3.1、负载均衡Loadbalancer部署—haproxy3.2、Docker部署3.3、K8s集群部署3.4、K8s集群添加worker节点四、集群高可用性能测试一、K8s高可用集群架构原理Kubernetes的存储层使用的... 查看详情

linux企业运维——k8s高可用集群架构搭建详解(代码片段)

...高可用集群架构原理二、实验环境三、K8s高可用集群架构搭建1、负载均衡Loadbalancer部署—haproxy2、Docker部署3、K8s集群部署4、K8s集群添加worker节点四、集群高可用性能测试一、K8s高可用集群架构原理Kubernetes的存储层使用的是Etcd... 查看详情

2.etcd集群的安装(cfssl版)(代码片段)

etcd的安装注意两点1.systemd的配置文件  2.证书1.解决systemd的问题,想安装指定版本的etcd可以通过yum方式安装etcd可以获得systemc和etcd.conf的模板。[[email protected]etcd-v3.3.13-linux-amd64]#rpm-qletcd/etc/etcd/etc/etcd/etcd.conf/usr/ 查看详情