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.rhkb.cn/news/294984.html

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

相关文章

1999-2022年上市公司员工人数数据

1999-2022年上市公司员工人数数据 1、时间:1999-2022年 2、指标:证券代码、时间、员工人数 3、来源:整理自csmar 4、范围:上市公司 5、指标解释: 上市公司员工人数是衡量公司规模和发展状的重要指标。该数据直接…

编程新手必看,python中的转义字符及注释!(4)

1、常见的转义字符 Python中的转义字符用于在字符串中表示一些特殊的字符,这些字符通常无法直接输入或具有特殊的意义。以下是一些常见的转义字符及其含义: 在Python中,可以使用转义字符来表示一些特殊的字符。以下是使用转义字符的几种常见…

VuePress基于 Vite 和 Vue 构建优秀框架

VitePress 是一个静态站点生成器 (SSG),专为构建快速、以内容为中心的站点而设计。简而言之,VitePress 获取用 Markdown 编写的内容,对其应用主题,并生成可以轻松部署到任何地方的静态 HTML 页面。 VitePress 附带一个用于技术文档…

Java复习第十六天学习笔记(JSP、Servlet),附有道云笔记链接

【有道云笔记】十六 4.2 JSP、Servlet https://note.youdao.com/s/QccA5g1G 一、软件的结构 C/S (Client - Server 客户端-服务器端) 典型应用:QQ软件 ,飞秋,印象笔记。 特点: 必须下载特定的客户端程序。服务器端升级&#…

保护Android应用安全:全面探究代码混淆在加固中的作用

Android APP 加固是优化 APK 安全性的一种方法,常见的加固方式有混淆代码、加壳、数据加密、动态加载等。下面介绍一下 Android APP 加固的具体实现方式。 混淆代码 使用 ipaguard工具可以对代码进行混淆,使得反编译出来的代码很难阅读和理解&#xff…

CSS面试题---基础

1、css选择器及优先级 选择器优先级:内联样式>id选择器>类选择器、属性选择器、伪类选择器>标签选择器、微元素选择器 注意: !important优先级最高; 如果优先级相同,则最后出现的样式生效; 继承得到的样式优先…

腾讯云2024年4月优惠券及最新活动入口

腾讯云是腾讯集团倾力打造的云计算品牌,提供全球领先的云计算、大数据、人工智能等技术产品与服务。为了吸引用户上云,腾讯云经常推出各种优惠活动。本文将为大家分享腾讯云优惠券及最新活动入口,助力大家轻松上云! 一、优惠券领取…

大模型prompt技巧——思维链(Chain-of-Thought)

1、Zero-shot、One-shot、Few-shot 与fintune prompt的时候给出例子答案,然后再让模型回答。 2、zero-shot-CoT “Let’s think step by step”有奇迹效果 3、多数投票提高CoT性能——自洽性(Self-consistency) 多个思维链,然后取…

浪潮分布式存储AS13000G6-M36改扩配后管理界面不能识别和标记硬盘的处理方法

AS13000G6 改配出问题的场景 浪潮分布式存储AS13000G6-M36渠道备货的分布式存储通常是流量机型,实际出货可能会涉及改配 集群部署完以后建议在系统视图下查看一下盘是否能识别 这个是正常的情况,可以正确管理到盘,硬盘侧边有绿色的指示灯。 如图是管理…

如果符合这7点,说明你经历过职场PUA。

今天聊聊在职场中比较普遍,但又容易被忽视的问题——职场PUA。 工作是为了更好的生活,但有时候可能会发现,这份工作怎么越做越不对劲,感觉像是偏航了。 简单来说,职场PUA就是一种精神控制,常常以批评和否…

java的警示之有危险的行为

👨‍💻作者简介:👨🏻‍🎓告别,今天 📔高质量专栏 :☕java趣味之旅 欢迎🙏点赞🗣️评论📥收藏💓关注 💖衷心的希…

MATLAB科研绘图与学术图表绘制从入门到精通

💂 个人网站:【 摸鱼游戏】【神级代码资源网站】【工具大全】🤟 一站式轻松构建小程序、Web网站、移动应用:👉注册地址🤟 基于Web端打造的:👉轻量化工具创作平台💅 想寻找共同学习交…

vue-ueditor-wrap上传图片报错:后端配置项没有正常加载,上传插件不能正常使用

如图所示,今天接收一个项目其中富文本编辑器报错 此项目为vue2项目,富文本编辑器为直接下载好的资源存放在public目录下的 经过排查发现报错的函数在ueditor.all.min.js文件内,但是ueditor.all.min.js文件夹是经过压缩的 所以直接,将index.html中的引用路径修改为ueditor…

C++算法——滑动窗口

一、长度最小的子数组 1.链接 209. 长度最小的子数组 - 力扣(LeetCode) 2.描述 3.思路 本题从暴力求解的方式去切入,逐步优化成“滑动窗口”,首先,暴力枚举出各种组合的话,我们先让一个指针指向第一个&…

“探秘数据结构:栈的奇妙魔力“

每日一言 兰有秀兮菊有芳,怀佳人兮不能忘。 —刘彻- 栈 栈的概念及结构 栈(Stack) :一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守…

Python深度学习034:cuda的环境如何配置

文章目录 1.安装nvidia cuda驱动CMD中看一下cuda版本:下载并安装cuda驱动2.创建虚拟环境并安装pytorch的torch_cuda3.测试附录1.安装nvidia cuda驱动 CMD中看一下cuda版本: 注意: 红框的cuda版本,是你的显卡能装的最高的cuda版本,所以可以选择低于它的版本。比如我的是11…

AI图像重绘解决方案

高质量的图像素材往往成本高昂且制作周期长,给企业带来了不小的困扰。美摄科技凭借其领先的AI图像重绘解决方案,为企业提供了一种高效、便捷且成本可控的图像优化途径,助力企业重塑视觉形象,引领市场新风尚。 美摄科技的AI图像重…

探索设计模式的魅力:AI大模型如何赋能C/S模式,开创服务新纪元

​🌈 个人主页:danci_ 🔥 系列专栏:《设计模式》 💪🏻 制定明确可量化的目标,坚持默默的做事。 AI大模型如何赋能C/S模式,开创服务新纪元 数字化飞速发展的时代,AI大模型…

【浅尝C++】STL第三弹=>list常用接口使用示例/list底层结构探索/list模拟实现代码详解

🏠专栏介绍:浅尝C专栏是用于记录C语法基础、STL及内存剖析等。 🎯每日格言:每日努力一点点,技术变化看得见。 文章目录 list介绍list常用接口使用示例构造类函数迭代器属性与元素获取增删改操作 list底层结构探索list模…

数据结构——第5章 树和二叉树

1 二叉树 二叉树和树都属于树形结构,但两者互不包含。即二叉树不是特殊的树。 1.1 二叉树的基本概念 1.2 二叉树的顺序存储 仅适用于完全二叉树 #define MaxSize 100 typedef int ElemType; typedef struct TreeNode{ElemType value;//结点中的数据元素bool isE…