部署etcd集群

部署etcd集群

第一步:先拉取etcd二进制压缩包

wget https://github.com/coreos/etcd/releases/download/v3.3.2/etcd-v3.3.2-linux-amd64.tar.gz
//解压压缩包
tar zxvf etcd-v3.3.2-linux-amd64.tar.gz

第二步:建立一个文件,分别存放bin文件,cfg配置文件,ssl验证文件

mkdir /opt/kubernetes/{bin,cfg,ssl}
//然后将etcd,etcdctl移动到bin目录下
mv etcd-v3.3.2-linux-amd64/etcd /opt/kubernetes/bin/
mv etcd-v3.3.2-linux-amd64/etcdctl /opt/kubernetes/bin/

第三步:创建etcd.service配置文件

 vi /usr/lib/systemd/system/etcd.service
 //内容为
 [Unit]
Description=Etcd Server
After=network.target
After=network-online.target
Wants=network-online.target

[Service]
Type=notify
EnvironmentFile=-/opt/kubernetes/cfg/etcd
ExecStart=/opt/kubernetes/bin/etcd --name=${ETCD_NAME} --data-dir=${ETCD_DATA_DIR} --listen-peer-urls=${ETCD_LISTEN_PEER_URLS} --listen-client-urls=${ETCD_LISTEN_CLIENT_URLS},http://127.0.0.1:2379 --advertise-client-urls=${ETCD_ADVERTISE_CLIENT_URLS} --initial-advertise-peer-urls=${ETCD_INITIAL_ADVERTISE_PEER_URLS} --initial-cluster=${ETCD_INITIAL_CLUSTER} --initial-cluster-token=${ETCD_INITIAL_CLUSTER} --initial-cluster-state=new --cert-file=/opt/kubernetes/ssl/server.pem --key-file=/opt/kubernetes/ssl/server-key.pem --peer-cert-file=/opt/kubernetes/ssl/server.pem --peer-key-file=/opt/kubernetes/ssl/server-key.pem --trusted-ca-file=/opt/kubernetes/ssl/ca.pem --peer-trusted-ca-file=/opt/kubernetes/ssl/ca.pem
Restart=on-failure
LimitNOFILE=65536

[Install]
WantedBy=multi-user.target

第四步:创建etcd配置文件

#[Member]
ETCD_NAME="etcd01" //节点名字
ETCD_DATA_DIR="/var/lib/etcd/default.etcd" //数据目录
ETCD_LISTEN_PEER_URLS="https://172.16.163.131:2380" 当前节点的ip地址
ETCD_LISTEN_CLIENT_URLS="https://172.16.163.131:2379"

#[Clustering]
ETCD_INITIAL_ADVERTISE_PEER_URLS="https://172.16.163.131:2380"
ETCD_ADVERTISE_CLIENT_URLS="https://172.16.163.131:2379"
ETCD_INITIAL_CLUSTER="etcd01=https://172.16.163.131:2380,etcd02=https://172.16.163.130:2380,etcd03=https://172.16.163.129:2380" //集群所有的节点的ip地址
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"
ETCD_INITIAL_CLUSTER_STATE="new"

第五步:将TLS证书生成的pem文件,复制到/opt/kubernetes/ssl/目录下

cp ssl/server*pem ssl/ca*.pem /opt/kubernetes/ssl/

第六步:启动etcd

systemctl daemon-reload
systemctl start etcd
systemctl enable etcd 

第七步:查看etcd是否启动

ps -ef |grep etcd

第八步:设置互信免密登录

//生成秘钥和私钥
ssh-keygen
//将秘钥和私钥复制到其他节点,这样就可以相互免密登录了
ssh-copy-id [email protected]

第九步:将所有在master节点上的配置文件都拷贝到node节点上,都使用同样的配置文件,不同的地方在于有些配置文件的内容不同。这些操作只需要在master做就可以。

scp -r /opt/kubernetes/bin/ [email protected]:/opt/kubernetes/
//将etcd配置文件拷贝到node节点
scp -r /opt/kubernetes/cfg/ [email protected]:/opt/kubernetes/
scp -r /opt/kubernetes/ssl/ [email protected]:/opt/kubernetes/
//将etcd.service配置文件也要拷贝到node节点
scp /usr/lib/systemd/system/etcd.service [email protected]:/usr/lib/systemd/system

第十步:因为etcd,etcdctl命令会常使用,所以将他们加入到PATH路径中

将etcd命令加入PATH
vi /etc/profile
在最后一行加入:PATH=$PATH:/opt/kubernetes/bin
让配置生效
source /etc/profile

第十一步:检查集群搭建成功与否

//执行这个命令需要进入到/opt/kubernetes/ssl目录,因为需要使用TLS证书
etcdctl --ca-file=ca.pem --cert-file=server.pem --key-file=server-key.pem --endpoints="https://172.16.163.130:2379,https://172.16.163.129:2379,https://172.16.163.131:2379" cluster-health
或者
etcdctl --ca-file=ca.pem --cert-file=server.pem --key-file=server-key.pem cluster-health
//输出这个表示成功
member 204f1af770aff3d9 is healthy: got healthy result from https://172.16.163.129:2379
member 81e41daa4ea73cbc is healthy: got healthy result from https://172.16.163.130:2379
member d2349ea355902626 is healthy: got healthy result from https://172.16.163.131:2379
cluster is healthy

报错:

这个报错是由数据目录引起的,只需要删除这个数据目录就可以了。

rm -rf /var/lib/etcd/default.etcd/

到这里错误处理完毕,etcd集群搭建完成。

原文地址:https://www.cnblogs.com/jasonboren/p/11483898.html

时间: 2024-08-29 22:13:50

部署etcd集群的相关文章

基于已有集群动态发现方式部署 Etcd 集群

etcd提供了多种部署集群的方式,在「通过静态发现方式部署etcd集群」 一文中我们介绍了如何通过静态发现方式部署集群. 不过很多时候,你只知道你要搭建一个多大(包含多少节点)的集群,但是并不能事先知道这几个节点的ip,从而无法使用--initial-cluster参数. 这个时候,你就需要使用discovery的方式来搭建etcd集群.discovery方式有两种:etcd discovery和DNS discovery. 这里我们先介绍下etcd discovery方式.这种启动方式依赖另外

基于 DNS 动态发现方式部署 Etcd 集群

使用discovery的方式来搭建etcd集群方式有两种:etcd discovery和DNS discovery.在 「基于已有集群动态发现方式部署etcd集群」一文中讲解了etcd discovery这种方式,今天我们就来讲讲DNS discovery这种方式的实现. etcd在基于DNS做服务发现时,实际上是利用DNS的SRV记录不断轮训查询实现的.DNS SRV是DNS数据库中支持的一种资源记录的类型,它记录了哪台计算机提供了哪个服务这么一个简单信息. 本文采用dnsmasq作为dns服

CentOS 部署Etcd集群

一.环境介绍 操作系统信息:CentOS 7 64位 服务器信息: 192.168.80.130  Etcd-master 192.168.80.131  Etcd-node1 192.168.80.132  Etcd-node2 二.部署前准备 1.设置免密登录   [Master] [[email protected] ~]# ssh-keygen [[email protected] ~]# ssh-copy-id -i /root/.ssh/id_rsa.pub Etcd-node1 [

部署k8s ssl集群实践4:部署etcd集群

参考文档:https://github.com/opsnull/follow-me-install-kubernetes-cluster感谢作者的无私分享.集群环境已搭建成功跑起来.文章是部署过程中遇到的错误和详细操作步骤记录.如有需要对比参考,请按照顺序阅读和测试. 4.1下载和分发二进制安装包 [[email protected] kubernetes]# wget https://github.com/coreos/etcd/releases/download/v3.3.7/etcd-v3

k8s部署etcd集群

1.k8s部署高可用etcd集群时遇到了一些麻烦,这个是自己其中一个etcd的配置文件 例如: [Unit] Description=Etcd Server After=network.target After=network-online.target Wants=network-online.target Documentation=https://github.com/coreos [Service] User=k8s Type=notify WorkingDirectory=/var/l

kubernetes容器集群部署Etcd集群

安装etcd 二进制包下载地址:https://github.com/etcd-io/etcd/releases/tag/v3.2.12 [[email protected] ~]# GOOGLE_URL=https://storage.googleapis.com/etcd [[email protected] ~]# GITHUB_URL=https://github.com/coreos/etcd/releases/download [[email protected] ~]# DOWNL

kubernetes 基础-安装部署etcd集群

HDSS7-200上: ~]# wget https://pkg.cfssl.org/R1.2/cfssl_linux-amd64 -O /usr/bin/cfssl ~]# wget https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64 -O /usr/bin/cfssl-json ~]# wget https://pkg.cfssl.org/R1.2/cfssl-certinfo_linux-amd64 -O /usr/bin/cfssl-cert

kubernetes部署etcd集群

部署环境: CentOS Linux release 7.2 64位 10.10.0.103 etcd master 10.10.0.49   etcd follower master安装过程: # yum update # yum install -y etcd # [member] ETCD_NAME=etcd1 ETCD_DATA_DIR="/var/lib/etcd/default.etcd" #ETCD_WAL_DIR="" #ETCD_SNAPSHOT_

centos7部署etcd集群

实验环境:centos7.4纯净版 192.168.216.130 node1 master 192.168.216.132 node2 slave 192.168.216.134 node3 slave yum安装etcd yum install etcd yum list installed |grep -i etcd node1 etcd 配置 cp /etc/etcd/etcd.conf /etc/etcd/etcd.conf.bak cd /etc/etcd/ [[email prot