部署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 root@172.16.163.130


第九步:将所有在master节点上的配置文件都拷贝到node节点上,都使用同样的配置文件,不同的地方在于有些配置文件的内容不同。这些操作只需要在master做就可以。
scp -r /opt/kubernetes/bin/ root@172.16.163.130:/opt/kubernetes/
//将etcd配置文件拷贝到node节点
scp -r /opt/kubernetes/cfg/ root@172.16.163.130:/opt/kubernetes/
scp -r /opt/kubernetes/ssl/ root@172.16.163.130:/opt/kubernetes/
//将etcd.service配置文件也要拷贝到node节点
scp /usr/lib/systemd/system/etcd.service root@172.16.163.130:/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集群搭建完成。
部署etcd集群的更多相关文章
- 基于已有集群动态发现方式部署 Etcd 集群
etcd提供了多种部署集群的方式,在「通过静态发现方式部署etcd集群」 一文中我们介绍了如何通过静态发现方式部署集群. 不过很多时候,你只知道你要搭建一个多大(包含多少节点)的集群,但是并不能事先知 ...
- 基于 DNS 动态发现方式部署 Etcd 集群
使用discovery的方式来搭建etcd集群方式有两种:etcd discovery和DNS discovery.在 「基于已有集群动态发现方式部署etcd集群」一文中讲解了etcd discove ...
- 基于Docker部署ETCD集群
基于Docker部署ETCD集群 关于ETCD要不要使用TLS? 首先TLS的目的是为了鉴权为了防止别人任意的连接上你的etcd集群.其实意思就是说如果你要放到公网上的ETCD集群,并开放端口,我建议 ...
- 2、二进制安装K8s 之 部署ETCD集群
二进制安装K8s 之 部署ETCD集群 一.下载安装cfssl,用于k8s证书签名 二进制包地址:https://pkg.cfssl.org/ 所需软件包: cfssl 1.6.0 cfssljson ...
- suse 12 二进制部署 Kubernetets 1.19.7 - 第02章 - 部署etcd集群
文章目录 1.2.部署etcd集群 1.2.0.下载etcd二进制文件 1.2.1.创建etcd证书和私钥 1.2.2.生成etcd证书和私钥 1.2.3.配置etcd为systemctl管理 1.2 ...
- Kubernetes后台数据库etcd:安装部署etcd集群,数据备份与恢复
目录 一.系统环境 二.前言 三.etcd数据库 3.1 概述 四.安装部署etcd单节点 4.1 环境介绍 4.2 配置节点的基本环境 4.3 安装部署etcd单节点 4.4 使用客户端访问etcd ...
- 使用二进制文件部署Etcd集群
Etcd 是一个分布式键值存储系统,Kubernetes使用Etcd进行数据存储,所以先准备一个Etcd数据库,为解决Etcd单点故障,应采用集群方式部署,这里使用3台组建集群,可容忍1台机器故障,当 ...
- 一键部署ETCD集群脚本
这里使用三个节点,系统版本为CentOS7 # vim deploy-etcd.sh #!/bin/bash set -x set -e #更改这里的IP, 只支持部署3个节点etcd集群 decla ...
- 005.基于docker部署etcd集群部署
一 环境准备 ntp配置:略 #建议配置ntp服务,保证时间一致性 etcd版本:v3.3.9 防火墙及SELinux:关闭防火墙和SELinux 名称 地址 主机名 备注 etcd1 172.24. ...
随机推荐
- [windows菜鸟]C#中调用Windows API参考工具
很多windows API都不知道签名,可以从下面几种方式进行查询 1.微软出的工具 P/Invoke Interop Assistant version 1.0 2.网站 pinvoke.net 3 ...
- Win10删除文件显示删除确认对话框
1.右键单击“回收站”图标:2.在弹出属性窗口中,点击“属性”选项:3.在“回收站”窗口中,在选项“显示删除确认对话框”前面打钩,并单击“确定”按钮:
- Oracle 基表 X$KSMLRU
Oracle 基表 X$KSMLRU 该表是Oracle的一个内部表.当SQL或者PL/SQL块向shared pool中请求一个大的连续的空间时,如果shared pool中连续的可用空间 不足,就 ...
- 算法试题 - 找出最小 k 个数
题目 题目:输入n个整数,找出其中最小的K个数.例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,. 解析 思路1 这一题应用堆排序算法复杂度只有O(nlog k), ...
- redis复制集
应用场景:复制集作用的场景问题: 1.解决单点故障 2.读写分离 1.准备两台redis服务器 a) 一台做为注服务器,一台做为从服务器 b) 在从服务器中的redis.conf文件中添加 repli ...
- iOS 企业版 打包
iOS 企业版 打包 使用 iOS 企业版的证书发布应用可以跳过 Appstore,直接发布到自己的网站,让其他人在自己的网站上下载安装,但前提是要用苹果自带的Safari 浏览器才能下载安装,其他浏 ...
- openstack部署keystone
环境: 免密钥,域名解析 cat /etc/hosts 192.168.42.120 controller 192.168.42.121 compute 192.168.42.122 storage ...
- 从 ssh private key 中重新生成 public key
Use the -y option to ssh-keygen: ssh-keygen -f ~/.ssh/id_rsa -y > ~/.ssh/id_rsa.pub From the 'man ...
- Unreal Engine 4 优化教程
本教程旨在帮助开发人员提升基于虚幻引擎(Unreal Engine*4 (UE4))开发的游戏性能.在教程中,我们对引擎内部及外部使用的一系列工具,以及面向编辑器的最佳实践加以概述,还提供了有助于提高 ...
- C学习笔记-文件操作
文件操作大致分三步 打开文件 读写文件 关闭文件 二进制和文本模式的区别 在windows系统中,文本模式下,文件以"\r\n"代表换行.若以文本模式打开文件,并用fputs等函数 ...