docker容器之etcd安装

一、etcd介绍

1、etcd是什么

  • etcd是CoreOS团队于2013年6月发起的开源项目,它的目标是构建一个高可用的分布式键值(key-value)数据库。

2、etcd特点

  • 简单的接口,通过标准的HTTP API进行调用,也可以使用官方提供的 etcdctl 操作存储的数据。
  • 有监听机制
  • 键值对存储

3、etcd是用场景

  • 服务发现
  • 消息发布于订阅
  • 负载均衡
  • 分布式通知于协调
  • 分布式锁

4、etcd关键字

  • Raft:etcd所采用的保证分布式系统强一致性的算法。
  • Node:一个Raft状态机实例。
  • Member: 一个etcd实例。它管理着一个Node,并且可以为客户端请求提供服务。
  • Cluster:由多个Member构成可以协同工作的etcd集群。
  • Peer:对同一个etcd集群中另外一个Member的称呼。
  • Client: 向etcd集群发送HTTP请求的客户端。
  • WAL:预写式日志,etcd用于持久化存储的日志格式。
  • snapshot:etcd防止WAL文件过多而设置的快照,存储etcd数据状态。
  • Proxy:etcd的一种模式,为etcd集群提供反向代理服务。
  • Leader(领导者):Raft算法中通过竞选而产生的处理所有数据提交的节点。
  • Follower(跟随者):竞选失败的节点作为Raft中的从属节点,为算法提供强一致性保证。
  • Candidate:当Follower超过一定时间接收不到Leader的心跳时转变为Candidate开始Leader竞选。
  • T-erm:某个节点成为Leader到下一次竞选开始的时间周期,称为一个Term。
  • Index:数据项编号。Raft中通过Term和Index来定位数据。

5、工作原理

在这里插入图片描述

6、获取

  • etcd项目地址:https://github.com/coreos/etcd/
  • etcd下载地址:https://github.com/etcd-io/etcd/releases 根据需要查找对应版本下载即可

二、etcd安装

1、创建并切换到下载目录

mkdir /usr/local/mytools && cd /usr/local/mytools

在这里插入图片描述

2、下载

这一步可跳过,因为下载较慢,可以直接用自己下载好的上传至linux进行第四部解压即可。

wget https://github.com/etcd-io/etcd/releases/download/v3.4.3/etcd-v3.4.3-linux-amd64.tar.gz 

在这里插入图片描述

3、解压文件到当前目录

 tar xzvf etcd-v3.4.3-linux-amd64.tar.gz

4、查看

切换至etcd根目录,运行查看命令ls,里面会有一些文档和2个二进制文件etcd和etcdctl。etcd是server端,etcdctl是客户端

[root@localhost mytools]# ls
etcd-v3.4.3-linux-amd64  etcd-v3.4.3-linux-amd64.tar.gz  etcd-v3.4.3-linux-amd64.tar.gz.1
[root@localhost mytools]# cd etcd-v3.4.3-linux-amd64/
[root@localhost etcd-v3.4.3-linux-amd64]# ls
Documentation  etcd  etcdctl  README-etcdctl.md  README.md  READMEv2-etcdctl.md

在这里插入图片描述

5、复制

将etcd和etcdctl二进制文件复制到/usr/local/bin目录, 这样系统中可以直接调用etcd/etcdctl这两个程序

cp etcd etcdctl /usr/local/bin

6、查看etcd版(v2/v3)

etcd --version

7、设置etcd版本

etct3.4.3默认使用v3命令所以步骤7可省略,之前版本此步骤不可少,例如:v3.3.10
vi /etc/profile# 最后一行指定etcdctl命令的版本为v3
export ETCDCTL_API=3# 刷新环境变量
source /etc/profile
#查看当前etcdctl的版本信息
#v2版本命令和v3命令是不一样的,例如:
#v2查看版本号
etcdctl -version或 etcdctl -v
#v3查看版本号
etcdctl version
# 更多命令帮助可以查询
etcdctl --help  

8、启动

etcd

参数说明
1.name表示节点名称,默认为default。
2.data-dir 保存日志和快照的目录,默认为当前工作目录default.etcd/目录下。
3.在http://localhost:2380和集群中其他节点通信。
4.在http://localhost:2379提供客户端交互。
5.heartbeat为100ms,该参数的作用是leader多久发送一次心跳到followers,默认值是100ms。
6.election为1000ms,该参数的作用是重新投票的超时时间,如果follow在该时间间隔没有收到心跳包,会触发重新投票,默认为1000ms。
7.snapshot count为10000,该参数的作用是指定有多少事务被提交时,触发截取快照保存到磁盘。
8.集群和每个节点都会生成一个uuid。
9.启动的时候会运行raft,选举出leader

在这里插入图片描述

三、创建etcd服务

1、建立etcd相关目录(即数据文件和配置文件的保存位置)

/etc目录是整个Linux系统的中心,其中包含所有系统管理和维护方面的配置文件,所以etcd的配置也放在这里

mkdir -p /var/lib/etcd/ && mkdir -p /etc/etcd/

2、创建etcd配置文件

vim /etc/etcd/etcd.conf

插入:

# 节点名称
ETCD_NAME="etcd0"
# 指定数据文件存放位置
ETCD_DATA_DIR="/var/lib/etcd/"

3、创建systemd配置文件

vim /etc/systemd/system/etcd.service

插入:

[Unit]
Description=Etcd Server
After=network.target
After=network-online.target
Wants=network-online.target
## 对于那些严格要求 必须存在真实可用的网络连接的单元, 
## 应该在其单元文件中包含 Wants=network-online.target 
## 与 After=network-online.target 指令[Service]
User=root
Type=notify
WorkingDirectory=/var/lib/etcd/
## 根据实际情况修改EnvironmentFileExecStart这两个参数值
## 1.EnvironmentFile即配置文件的位置,注意“-”不能少
EnvironmentFile=-/etc/etcd/etcd.conf
## 2.ExecStart即etcd启动程序位置
ExecStart=/usr/local/bin/etcd
Restart=on-failure
LimitNOFILE=65536[Install]
WantedBy=multi-user.target

4、启动/停止/查看etcd服务

## 1.重新加载systemd服务
systemctl daemon-reload## 2.设置开机自启动
systemctl enable etcd 

在这里插入图片描述

## 3.启动etcd
systemctl start etcd## 4.查看etcd运行状态
systemctl status etcd## 5.停止服务
systemctl stop etcd## 6.重启etcd
systemctl restart etcd

四、常用操作

1、 如何获取帮助

etcdctl -h

2、put,放入值

etcdctl put /testdir/testkey "Hello world"

3、get,获取值

etcdctl get /testdir/testkey

4、del

# 清空数据
etcdctl del / --prefix#删除所有/test前缀的节点
etcdctl del /test --prefix

5、watch

#1. 增加一个key,(客户端窗口1)
etcdctl put key1 "hello"#2. 打开一个新的客户端窗口2,监听key1的变化
etcdctl watch key1#3. 回到窗口1,向key1 中put新值
etcdctl put key1 "hello work"# 4. 此时可以在窗口2中看到监听输出# 查看版本信息
curl http://127.0.0.1:2379/version

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/789467.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用Vue实现CSS过渡和动画

01-初识动画和过渡 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0" /><title>使用vue实现css过渡和动画&l…

MMU关闭时Cache的缓存策略是怎样的

快速链接: 【精选】ARMv8/ARMv9架构入门到精通-[目录] &#x1f448;&#x1f448;&#x1f448; 在学习MMU章节时&#xff0c;我们发现在页表的entry中&#xff0c;BIT[4:2]指向了MAIR寄存器&#xff0c;该寄存器描述了内存属性&#xff0c;其实就是cache的缓存策略属性&#…

一些常见的k8s问题和答案

什么是 Kubernetes&#xff08;K8s&#xff09;&#xff1f; Kubernetes是一个开源的容器编排平台&#xff0c;用于自动化部署、扩展和管理容器化应用程序。由多个组件组成&#xff0c;每个组件都有不同的作用和功能。以下是Kubernetes的主要组件及其作用&#xff1a; kube-ap…

ABAP 去除小数掉

有时我们需要将数字类型转换成字符型&#xff0c;但后面存在小数点为零的&#xff0c;以下方法可去掉。 DATA:QTY TYPE P DECIMALS 2,ZQTY TYPE C LENGTH 20,Q1 TYPE STRING, Q2 TYPE STRING,TAB_C TYPE C LENGTH 20. QTY 2. IF QTY <> 0. ZQTY QTY. CONDENSE ZQ…

高性价比的挂耳式耳机哪个好用?五大高口碑品牌深度测评严选!

入耳式耳机虽然普及度极高&#xff0c;但其缺点也不容忽视。首先&#xff0c;长时间佩戴可能导致耳朵不适&#xff0c;甚至影响听力健康。其次&#xff0c;入耳式耳机往往因为隔音效果过好&#xff0c;导致用户与周围环境脱节&#xff0c;失去了一定的生活便利性。相比之下&…

《书生·浦语大模型全链路开源开放体系》学习笔记

书生浦语大模型全链路开源开放体系-学习笔记 大模型成为发展通用人工智能的重要途径专用模型通用大模型 书生大模型开源历程InternLM2回归语言建模的本质主要亮点性能全方位提升强大的内生计算能力 从模型到应用典型流程全链条开源开放体系数据数据集获取预训练微调XTuner 评测…

Runes 生态一周要览 ▣ 2024.3.25-3.31|Runes 协议更新 BTC 减半在即

Runes 生态大事摘要 1、Casey 发布了 Runes 协议文档 RUNES HAVE DOCS&#xff0c;Github 代码库更新到 ord 0.17.0 版本&#xff0c;Casey 表示符文是一个“严肃”的代币协议。 2、Casey 公布了第一个硬编码的创世符文「UNCOMMONGOODS」 3、4月7日香港沙龙&#xff5c;聚焦「…

c++的学习之路:9、STL简介与string(1)

一、STL 1、什么是STL STL(standard template libaray-标准模板库)&#xff1a;是C标准库的重要组成部分&#xff0c;不仅是一个可复用的组件库&#xff0c;而且是一个包罗数据结构与算法的软件框架。 也就是说STL就是一个模板&#xff0c;这个模板就是整合了很多库让我们方…

Git常用语句

设置用户名 git config --global user.name "用户名" git config --global user.email "邮箱"查看git用户信息 cat ~/.gitconfig初始化本地库 git initclone指定分支的代码 git clone -b my_branch gitgitlabxxxxxxxxxxxxxxxxxxxxxx.gitpush三件套 gi…

P2249:查找——P1024:一元三次方程求解 【二分查找】

P2249 【深基13.例1】查找 【二分查找】题目描述 输入 n 个不超过 10^9 的单调不减的(就是后面的数字不小于前面的数字)非负整数 a1,a2,…,an ,然后进行 m 次询问。对于每次询问,给出一个整数 q,要求输出这个数字在序列中第一次出现的编号,如果没有找到的话输出 −1 。输…

Redis热点Key问题分析与解决

目录 一、问题现象描述 二、什么是热点Key 三、热点Key的危害 3.1 Redis节点负载过高 3.2 Redis集群负载不均 3.3 Redis集群性能下降 3.4 数据不一致 3.5 缓存击穿 四、热点Key产生的原因分析 4.1 热点数据 4.2 业务高峰期 4.3 代码逻辑问题 五、如何检测热点Key …

ClickHouse开发相关(UDAF)

ClickHouse开发相关(UDAF) ClickHouse介绍 ClickHouse是一个开源、高性能的列式 OLAP 数据库管理系统,用于使用 SQL 进行实时分析。 为什么需要ClickHouse UDAF? ClickHouse中已存在了许多聚合函数,绝大多数情况下已经覆盖我们的需求,但是有时候我们仍然需要自定义函数…

红队笔记11:pWnOS1.0打靶流程解法2-ssh免密登录-rsa私钥破解-shellshock提权(vulnhub)

目录 开头 1.webmin文件泄露漏洞利用-/etc/passwd/ 2.ssh免密登录-私钥伪随机数碰撞&#xff1a; ssh免密登录原理&#xff1a; prng伪随机数生成ssh rsa 私钥公钥密码库 openssl和openssh的关系&#xff1a; ssh登录报错-解决思路-vv 3.提权-内核提权-shellshock提权 内…

《解释器模式(极简c++)》

本文章属于专栏- 概述 - 《设计模式&#xff08;极简c版&#xff09;》-CSDN博客 模式说明 方案&#xff1a; 对每个data建立一个单点解释器对象X&#xff0c;dataA和dataB之间的关系&#xff0c;建立一个关系解释器对象Y&#xff0c;这里的Y处理的是X1和X2。这样&#xff0c;…

心灵鸡汤人生感悟,简短而有深意的句子

1、你的真心很珍贵&#xff0c;别再不值得的人身上卑微 &#xff0c;爱应该是让你笑的开怀&#xff0c;而不是哭的崩溃。爱必须是温情的依赖&#xff0c;而不是冷漠的伤害。想要找你的人走遍了全世界也能找到你&#xff0c;等到了年华老去也会等着你。 2、大冬天的时候给你送吃…

MySQL安装卸载-Linux

目录 1.概述 2.安装 2.1.上传 2.2.解压 ​​​​​​​2.3.安装 ​​​​​​​2.4.启动服务 ​​​​​​​2.5.查询临时密码 ​​​​​​​2.6.修改临时密码 ​​​​​​​2.7.创建用户 ​​​​​​​2.8.分配权限 ​​​​​​​2.9.重新链接 3.卸载 3.1.停…

LeetCode-2810. 故障键盘【字符串 模拟】

LeetCode-2810. 故障键盘【字符串 模拟】 题目描述&#xff1a;解题思路一&#xff1a;Python切片操作yyds!解题思路二&#xff1a;不用切片&#xff0c;用双端队列。解题思路三&#xff1a; 题目描述&#xff1a; 你的笔记本键盘存在故障&#xff0c;每当你在上面输入字符 ‘…

供应商管理软件:供应商绩效评估实用清单

还在为寻找潜在供应商而苦恼吗&#xff1f;难以判断与现有供应商的关系吗&#xff1f;想优化运营成本但无从下手吗&#xff1f; 如果以上回答是肯定的&#xff0c;那么强烈建议你做好供应商评估。 供应商评估的重要性 在采购中&#xff0c;供应商评估是指根据业务要求&#…

Linux 内核线程的创建:一段代码的旅程

Linux 内核线程的创建&#xff1a;一段代码的旅程 Linux 内核线程是一种没有用户空间地址的轻量级进程&#xff0c;它们在内核空间运行并执行核心系统功能。这些线程是Linux多任务处理的基础&#xff0c;负责处理设备驱动、系统调用和其他核心任务。本文将详细探讨内核线程的创…

【LeetCode热题100】79. 单词搜索(回溯)

一.题目要求 给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 单词必须按照字母顺序&#xff0c;通过相邻的单元格内的字母构成&#xff0c;其中“相邻”单元格是那些水平…