Linux 下 ETCD 安装、配置与命令使用总结

news2024/9/20 14:28:36

在这里插## 标题入图片描述

大家好,我是程序员小羊!

前言:

Linux 下 ETCD 安装、配置与命令使用总结

ETCD 是一个分布式键值存储系统,广泛用于服务发现、分布式锁、配置管理等场景,特别是在 Kubernetes 集群中发挥着至关重要的作用。ETCD 的高可用性和一致性使其成为分布式系统的关键组件。在 Linux 下安装、配置 ETCD 并掌握常用命令对系统管理员和 DevOps 工程师至关重要。本文将详细介绍如何在 Linux 上安装 ETCD、进行基本配置,并使用常用命令进行管理,下面是关于在 Linux 系统上安装、配置 ETCD 以及常用命令的详细总结。


1. ETCD 简介

ETCD 是由 CoreOS 开发的开源分布式键值存储系统,使用 Raft 共识算法确保数据一致性。它主要用于服务发现、配置管理和分布式锁等场景。ETCD 保证了高可用性和数据一致性,非常适合需要强一致性的应用场景。


在这里插入图片描述

2. 安装 ETCD

2.1 安装准备

在开始安装之前,确保系统满足以下要求:

  • 操作系统:ETCD 支持大多数主流 Linux 发行版,如 Ubuntu、CentOS 和 Debian。
  • 工具:需要 wgetcurl 用于下载 ETCD 的二进制包,tar 用于解压缩。
2.2 下载 ETCD

访问 ETCD 的 GitHub 发布页面,获取最新版本的下载链接。以 v3.5.9 为例,使用以下命令下载:

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

curl -L https://github.com/etcd-io/etcd/releases/download/v3.5.9/etcd-v3.5.9-linux-amd64.tar.gz -o etcd-v3.5.9-linux-amd64.tar.gz
2.3 解压缩和安装

解压下载的文件并将二进制文件移动到系统路径中:

tar -xvf etcd-v3.5.9-linux-amd64.tar.gz
sudo mv etcd-v3.5.9-linux-amd64/etcd /usr/local/bin/
sudo mv etcd-v3.5.9-linux-amd64/etcdctl /usr/local/bin/
2.4 验证安装

检查 ETCD 是否安装成功:

etcd --version

成功的话会显示 ETCD 的版本信息。


3. 配置 ETCD

在这里插入图片描述

3.1 基本配置

ETCD 的基本配置可以通过环境变量设置。创建一个配置文件 /etc/etcd/etcd.conf,包括以下内容:

# ETCD 配置
ETCD_DATA_DIR="/var/lib/etcd"
ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379"
ETCD_ADVERTISE_CLIENT_URLS="http://localhost:2379"
  • ETCD_DATA_DIR:ETCD 存储数据的目录。
  • ETCD_LISTEN_CLIENT_URLS:ETCD 监听客户端请求的地址。
  • ETCD_ADVERTISE_CLIENT_URLS:ETCD 广播给客户端的地址。
3.2 配置系统服务

为了使 ETCD 成为系统服务,可以创建一个服务文件 /etc/systemd/system/etcd.service

sudo nano /etc/systemd/system/etcd.service

添加以下内容:

[Unit]
Description=etcd key-value store
Documentation=https://github.com/etcd-io/etcd
After=network.target

[Service]
Type=notify
EnvironmentFile=/etc/etcd/etcd.conf
ExecStart=/usr/local/bin/etcd \
  --data-dir=${ETCD_DATA_DIR} \
  --listen-client-urls=${ETCD_LISTEN_CLIENT_URLS} \
  --advertise-client-urls=${ETCD_ADVERTISE_CLIENT_URLS}
Restart=always

[Install]
WantedBy=multi-user.target
3.3 启动 ETCD 服务

重新加载 systemd 配置并启动 ETCD 服务:

sudo systemctl daemon-reload
sudo systemctl start etcd
sudo systemctl enable etcd

检查 ETCD 服务状态:

sudo systemctl status etcd

4. ETCD 常用命令

ETCD 提供了 etcdctl 工具用于操作和管理 ETCD。以下是一些常用的 etcdctl 命令。

4.1 基本操作
  1. 设置键值

    etcdctl put mykey "myvalue"
    
  2. 获取键值

    etcdctl get mykey
    
  3. 删除键值

    etcdctl del mykey
    
  4. 列出所有键

    etcdctl get "" --prefix
    
4.2 高级操作
  1. 获取键值并设置 TTL(过期时间)

    etcdctl put mykey "myvalue" --ttl=60
    
  2. 查看键的详细信息

    etcdctl get mykey --print-value-only
    
  3. 列出键值并使用分隔符

    etcdctl get "" --prefix --keys-only
    
  4. 监控键的变化

    etcdctl watch mykey
    
  5. 使用事务

    etcdctl txn
    

    可以在 ETCD 中执行复杂的事务操作,例如原子性地执行多个命令。

4.3 备份与恢复
  1. 备份 ETCD 数据

    etcdctl snapshot save snapshot.db
    
  2. 恢复 ETCD 数据

    etcdctl snapshot restore snapshot.db
    

    恢复后需要重新配置 ETCD。


5. ETCD 集群配置

ETCD 支持集群模式,以提高可靠性和可用性。以下是配置 ETCD 集群的基本步骤:

  1. 配置每个节点的 etcd.conf 文件,指定不同的 ETCD_LISTEN_PEER_URLSETCD_INITIAL_ADVERTISE_PEER_URLS

  2. 启动每个 ETCD 节点

    etcd --name node1 --initial-advertise-peer-urls http://localhost:2380 \
      --listen-peer-urls http://localhost:2380 \
      --listen-client-urls http://localhost:2379 \
      --advertise-client-urls http://localhost:2379 \
      --initial-cluster token=etcd-cluster \
      --initial-cluster-state new
    
  3. 验证集群状态

    etcdctl member list
    
  4. 添加/删除集群成员

    etcdctl member add <member-name> --peer-urls=<peer-urls>
    etcdctl member remove <member-id>
    

6. 监控和故障排除

  1. 监控 ETCD 状态

    etcdctl endpoint status
    
  2. 查看 ETCD 日志

    journalctl -u etcd
    
  3. 故障排除

    • 网络问题:检查防火墙设置和网络连接。
    • 磁盘问题:确保 ETCD 数据目录有足够的磁盘空间。
    • 配置错误:检查 ETCD 配置文件的语法和内容。

结尾

ETCD 是一个功能强大且稳定的分布式键值存储系统。通过上述步骤,你可以在 Linux 上顺利安装、配置和管理 ETCD。掌握 ETCD 的基本命令和高级操作将帮助你高效地管理分布式系统中的配置和服务发现需求。定期备份和监控 ETCD 数据是确保系统可靠性和数据安全的重要措施。

今天这篇文章就到这里了,大厦之成,非一木之材也;大海之阔,非一流之归也。

在这里插入图片描述

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

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

相关文章

LoRA实现大模型LLM微调研究

LoRA&#xff0c;即低秩适应&#xff08;Low-Rank Adaptation&#xff09;&#xff0c;作为一种创新的微调方法&#xff0c;为大模型的优化与定制提供了一条高效、节省资源的新途径。 在快速发展的AI时代背景下&#xff0c;大型语言模型因其卓越的性能和广泛的应用前景&#xf…

(限时免费)震惊!流落人间的haproxy宝典被找到了!一切玄妙尽在此处!

目录 haproxy七层代理详解一、负载均衡1.1 什么是负载均衡1.2 为什么使用负载均衡1.3 负载均衡类型1.3.1 硬件负载1.3.2 四层负载1.3.3 七层负载1.3.4 四层与七层的区别 二、haproxy介绍2.1 haproxy简介2.2 haproxy特性 三、haproxy详细部署3.1 实验所用的环境3.2 软件安装3.3 …

【每日一题】【数学推导】【分类讨论】小红的数组重排 牛客周赛 Round 55 C题 C++

牛客周赛 Round 55 C题 小红的数组重排 题目背景 牛客周赛 Round 55 题目描述 样例 #1 样例输入 #1 4 7 2 5 1样例输出 #1 YES 1 5 2 7样例 #1 样例输入 #1 6 1 1 4 5 1 4样例输出 #1 NO做题思路 a 1 ∗ a 2 < a 2 ∗ a 3 < . . . < a n − 1 ∗ a n a_1*a_…

【Kettle】kettle连接MySQL数据库连接不上解决方案汇总

前言 近期项目上经常用到ETL&#xff08;数据抽取转换加载&#xff09;&#xff0c;就想到了之前用过的kettle工具&#xff0c;下班回家想着再玩玩这个工具吧&#xff0c;结果在连接MySQL时&#xff0c;遇到了各种问题&#xff0c;就顺手整理记录一下。所以今天晚上的主题是&a…

SuccBI+低代码文档中心 — 可视化分析(仪表板)(上)

有关仪表板的设计器&#xff1a; 查询设置 由于仪表板的设计器是所见即所得的&#xff0c;可以将当前制作的内容和数据的查询结果实时展示在界面中&#xff0c;当引入到仪表板的模型数据量较大时&#xff0c;为了提高设计器界面的查询性能&#xff0c;提供了以下两种方法&…

PythonStudio 控件使用常用方式(二十一)TTrayIcon

PythonStudio是一个极强的开发Python的IDE工具&#xff0c;官网地址是&#xff1a;https://glsite.com/ &#xff0c;在官网可以下载最新版的PythonStudio&#xff0c;同时&#xff0c;在使用PythonStudio时&#xff0c;它也能及时为用户升到最新版本。它使用的是Delphi的控件&…

SSL发送邮件:如何确保邮件传输过程安全?

SSL发送邮件的安全性评估&#xff1f;SSL发送邮件的条件有哪些&#xff1f; 使用SSL发送邮件是一种有效的措施&#xff0c;能够确保邮件在传输过程中的安全性。AokSend将探讨SSL发送邮件的关键技术及其重要性&#xff0c;帮助您更好地理解如何确保邮件传输过程的安全。 SSL发…

米思奇安装——Mac版本

米思奇安装——Mac版本 1.下载 访问米思奇官网https://mixly.org/bnu-maker/mixl2.0rc 打开官网后在首页点击导航栏的软件平台&#xff0c;选择Mixly离线版 点击Mixly2.0RC4发布下载。 进入百度网盘分享的文件&#xff0c;选择Mac一键更新版本&#xff0c;等待下载完成。 …

机器学习——第十一章 特征选择与稀疏学习

11.1 子集搜索与评价 对一个学习任务来说&#xff0c;给定属性集&#xff0c;其中有些属性可能很关键、很有用&#xff0c;另一些属性则可能没什么用.我们将属性称为"特征" (feature) &#xff0c;对当前学习任务有用的属性称为"相关特征" (relevant featu…

【Pyspark-驯化】一文搞懂Pyspark中表连接的使用技巧

【Pyspark-驯化】一文搞懂Pyspark中表连接的使用技巧 本次修炼方法请往下查看 &#x1f308; 欢迎莅临我的个人主页 &#x1f448;这里是我工作、学习、实践 IT领域、真诚分享 踩坑集合&#xff0c;智慧小天地&#xff01; &#x1f387; 相关内容文档获取 微信公众号 &…

ios创建控制器的3种方法实现页面跳转

ios遵守mvc设计模式&#xff0c;下面介绍创建控制器viewcontroller的几种方法&#xff0c;来实现页面的跳转 1.纯代码创建 // // AppDelegate.m // study2024 // // Created by zhifei zhu on 2024/8/7. //#import "AppDelegate.h" #import "MyViewContro…

代理模式-

代理模式通常找到代理方来管理用户的权限访问。如下图&#xff1a; #include<string> #include<iostream> using namespace std; class Video { public:virtual void Free() 0;virtual void VIP() 0;virtual void Ticket() 0; }; class FixbugVideo:public V…

机械学习—零基础学习日志(项目实践01)

llM项目分类与原理解析 Prompt项目 直接产出一些具体的文本与信息&#xff0c;使用markdown的格式。 对prompt进行较好的格式输出&#xff0c;固定格式。 ChatPaper 快速获取论文内容&#xff0c;然后了解对应的信息&#xff0c;判断是否有必要阅读这一篇论文 ChatBI&…

Adobe Dimension DN v4.0.2 解锁版下载及安装教程 (三维3D建模工具)

前言 Adobe Dimension&#xff08;简称DN&#xff09;是一款3D设计软件&#xff0c;三维合成和渲染工具&#xff0c;2D平面的二维转为3D立体的三维合成工具&#xff0c;用于3Dmax\C4D\MAYA等三维软件生成的效果图&#xff0c;在3D场景中排列对象、图形和光照。3D应用程序使用的…

python循环语句之while循环和for循环

文章目录 1. while 循环1.1 介绍1.1.1 生活中的循环1.1.2 程序中的循环 1.2 总结 2. while循环应用&#xff1a;1~100求和2.1 需求2.2 分析 3. while嵌套循环以及运用3.1 while嵌套循环语句的语法格式3.2 while嵌套循环使用3.2.1 要求3.2.2 参考代码 4. for循环4.1 for循环基本…

2024自动驾驶(多模态)大模型综述:从DriveGPT4、DriveMLM到DriveLM、DriveVLM

前言 由于今年以来&#xff0c;一直在不断深挖具身智能机器人相关&#xff0c;而自动驾驶其实和机器人有着无比密切的联系&#xff0c;甚至可以认为&#xff0c;汽车就是一个带着4个轮子的机器人 加之个人认为&#xff0c;目前大模型落地潜力最大的两个方向&#xff0c;一个是…

【BES2500x系列 -- RTX5操作系统】系统执行流程 -- 应用初始化 -- app_init() --(十二)

&#x1f48c; 所属专栏&#xff1a;【BES2500x系列】 &#x1f600; 作  者&#xff1a;我是夜阑的狗&#x1f436; &#x1f680; 个人简介&#xff1a;一个正在努力学技术的CV工程师&#xff0c;专注基础和实战分享 &#xff0c;欢迎咨询&#xff01; &#x1f49…

Linux:多线程(三.POSIX信号量、生产消费模型、线程池、其他常见的锁)

上次讲解了&#xff1a;Linux&#xff1a;多线程&#xff08;二.理解pthread_t、线程互斥与同步、基于阻塞队列的生产消费模型&#xff09; 文章目录 1.POSIX信号量1.1引入1.2回顾加深理解信号量1.3信号量的操作接口 2.基于循环队列的生产消费模型2.1循环队列2.2整个项目 3.线程…

fastadmin自定义弹框,以及回调函数等问题,

效果图 1&#xff0c; 代码 弹框中使用弹框 弹框1代码主要代码 <div class"form-group ccol-xs-12 col-sm-2" style"text-align: right"><a href"#" data-url"{:url(user/add)}" class"btn btn-info" id"a…

Android逆向题解-boomshakalaka-3-难度5

这个app 是一个cocos游戏&#xff0c;没有用脚本实现&#xff0c;纯c实现。 题目描述:play the game, get the highest score 题目要求是玩游戏得到最高分就可以得到flag&#xff0c;是写到配置文件的&#xff0c;初始flag值看着是base编码的。 核心代码在so里面的ControlLay…