当前位置: 首页 > news >正文

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

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

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

前言:

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 数据是确保系统可靠性和数据安全的重要措施。

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

在这里插入图片描述

相关文章:

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

​ 大家好&#xff0c;我是程序员小羊&#xff01; 前言&#xff1a; Linux 下 ETCD 安装、配置与命令使用总结 ETCD 是一个分布式键值存储系统&#xff0c;广泛用于服务发现、分布式锁、配置管理等场景&#xff0c;特别是在 Kubernetes 集群中发挥着至关重要的作用。ETCD 的高…...

C++笔试练习笔记【7】:力扣 91. 解码方法 动态规划练习

文章目录 题目题目分析思路解法正常解法优化解法 题目 题目链接&#xff1a;力扣 91. 解码方法 备用链接&#xff1a;https://leetcode.cn/problems/decode-ways/description/ 题目分析 1.首先我们知道题目给定A~Z编码为1 ~26 &#xff0c;而数字十一字符串的形式给出所以…...

【antd】antd3的表单校验不提示报错信息

描述 不是网上所谓的自定义校验方法的问题。 今天在写一个antd3的业务的时候&#xff0c;封装一个组件&#xff0c;把校验和请求事件放在一个方法里面&#xff0c;用回调或者promise进行异步处理。 发现原因是在校验错误的判断&#xff0c;进行callback之后&#xff0c;页面…...

Game AI ——游戏人工智能(逻辑及剧情生成)

一、Game AI 的介绍 "Game AI"&#xff08;游戏人工智能&#xff09;通常指的是在电子游戏中使用的各种人工智能技术和算法&#xff0c;用于控制游戏中的非玩家角色&#xff08;NPC&#xff09;、敌人、队友等&#xff0c;以及为玩家提供有挑战性的对手或有趣的互动…...

算法基础知识——核函数

简介&#xff1a;个人学习分享&#xff0c;如有错误&#xff0c;欢迎批评指正 核函数&#xff08;Kernel Function&#xff09;是机器学习中一种重要的工具&#xff0c;特别是在支持向量机&#xff08;SVM&#xff09;、核岭回归、核主成分分析&#xff08;KPCA&#xff09;等核…...

安卓xml乱码/加密转换:abx2xml和xml2abx使用及源码介绍

背景&#xff1a; 上一篇文章 android系统中data下的xml乱码无法查看问题剖析及解决方法 发布后&#xff0c;想要寻找一个可以直接把二进制xml和普通xml进行相互转换的&#xff0c;当时还写了相关的方案&#xff0c;但是当时没有找到现成的开源工具&#xff0c;后来经过相关粉…...

slice 截取

JavaScript中的一个数组方法。然而&#xff0c;在Vue 3的应用开发中&#xff0c;slice 方法经常被用于处理数组数据&#xff0c;特别是在需要实现分页、数据截取或数据展示等场景时。 slice 方法的基本用法 slice() 方法返回一个新的数组对象&#xff0c;这一对象是一个由 be…...

XReparentWindow踩坑分析

X11是Linux发行系统中广泛采用的显示协议&#xff0c;各个系统基本上都支持XLib库&#xff0c;作为底层接口&#xff0c;XReparentWindow接口的功能就是重新设置父窗口&#xff0c;注意这个可以跨进程设置父窗口&#xff0c;例如将已经运行的进程的父窗口设置自己的程序Wid&…...

OpenAI动荡,将走向何方、GPT5或许将近、毒舌AI轻松破防网友、最新版 GPT-4o AI 模型得满分 | AGI视界周刊第 4 期

AI 视界周刊由战场小包维护&#xff0c;每周一更新&#xff0c;包含热点聚焦、应用破局、学术前沿、社区热议、智见交锋、跨界 AI、企业动态和争议 AI 八大板块&#xff0c;后续板块划分和内容撰写在周刊迭代过程中持续优化&#xff0c;欢迎大家提出建议。 欢迎大家来到《AI 视…...

RCE---无字母数字webshell

<?php if(isset($_GET[code])){$code $_GET[code];if(strlen($code)>35){die("Long.");}if(preg_match("/[A-Za-z0-9_$]/",$code)){die("NO.");}eval($code); }else{highlight_file(__FILE__); } 分析代码&#xff1a;传参不大于35&…...

有意思的漏洞复现与分析一

目录 一、Linux命令长度限制突破方法 1.在二进制漏洞利用中&#xff0c;某师傅遇到可控数据只有8字节的情况&#xff0c;去掉字符 串尾的\0&#xff0c;限制在7个字符。 一、Linux命令长度限制突破方法 1.在二进制漏洞利用中&#xff0c;某师傅遇到可控数据只有8字节的情况&a…...

力扣题解(按身高排序)

2418. 按身高排序 给你一个字符串数组 names &#xff0c;和一个由 互不相同 的正整数组成的数组 heights 。两个数组的长度均为 n 。 对于每个下标 i&#xff0c;names[i] 和 heights[i] 表示第 i 个人的名字和身高。 请按身高 降序 顺序返回对应的名字数组 names 。 思路&…...

Redis的六种淘汰策略详解

Redis作为一种高性能的键值对存储系统&#xff0c;其数据全部存储在内存中&#xff0c;因此内存管理对Redis的性能至关重要。当Redis的内存使用达到上限时&#xff0c;就需要通过淘汰策略来释放内存空间&#xff0c;以便存储新的数据。Redis提供了六种不同的淘汰策略&#xff0…...

vue3中 ref 和 reactive 的区别

相同&#xff1a;均是声明响应式对象。且声明的响应式对象是深层的 1. 数据类型不同&#xff1a;ref用于包装JavaScript基本类型的数据&#xff08;如字符串、数字、布尔值等&#xff09;&#xff0c;而reactive可以用于包装JavaScript对象和数组等复杂类型的数据。 2.访问方式…...

《单例模式的深度解读:实现方式、破坏情况与利弊权衡》

单例模式 一、单例模式的定义 ​ 单例模式&#xff08;Singleton Pattern&#xff09;是一种常见的软件设计模式&#xff0c;确保一个类只有一个实例存在&#xff0c;并提供一个全局访问点来获取该实例。 二、单例模式的实现方式 ​ 1.懒汉式单例 public class LazySingle…...

010607电压源和电流源受控源

电源的理论部分 1.6电压源和电流源1.理想电压源&#xff1a; 1.6电压源和电流源 1.理想电压源&#xff1a; 其两端电压总能保持定值或一定的时间函数&#xff0c;其值与流过它的电流i无关的元件叫理想电压源。 电路符号&#xff1a;中间与导线直通的圆圈 电压源&#xff1a…...

快乐数求解

编写一个算法来判断一个数 n 是不是快乐数。 「快乐数」 定义为&#xff1a; 对于一个正整数&#xff0c;每一次将该数替换为它每个位置上的数字的平方和。然后重复这个过程直到这个数变为 1&#xff0c;也可能是 无限循环 但始终变不到 1。如果这个过程 结果为 1&#xff0c…...

运维高级内容--为端口做标记、制定调度规则

rs: yum install mod_ssl -y #安装mod_ssl模块 让rs支持https systemctl restart http lvs: cd /boot/ ls less config-5.14.0-427.13.1.el9_4.x86_64 ipvsadm -A -t 192.168.0.200:80 -s rr ipvsadm -a -t 192.168.0.200:80 -r 192.168.0.10:80 -g -w 1 #轮询调度一次…...

后端Web之HTTP协议基础介绍

目录 1.HTTP概念 2.HTTP请求协议 3.HTTP响应协议 4.HTTP协议解析 1.HTTP概念 HTTP&#xff08;HyperText Transfer Protocol&#xff0c;超文本传输协议&#xff09;是一种用于分布式、协作式和超媒体信息系统的应用层协议。它是万维网数据通信的基础&#xff0c;允许将超…...

深入解析Nginx限流策略:如何高效控制访问频率

摘要&#xff1a;本文将详细介绍Nginx限流模块的使用方法&#xff0c;包括基于IP地址的限流、基于并发连接的限流以及如何应对突发流量。通过实际案例&#xff0c;帮助读者掌握Nginx限流策略&#xff0c;确保服务器在高并发场景下的稳定运行。 一、引言 在高并发场景下&#x…...

在软件开发中正确使用MySQL日期时间类型的深度解析

在日常软件开发场景中&#xff0c;时间信息的存储是底层且核心的需求。从金融交易的精确记账时间、用户操作的行为日志&#xff0c;到供应链系统的物流节点时间戳&#xff0c;时间数据的准确性直接决定业务逻辑的可靠性。MySQL作为主流关系型数据库&#xff0c;其日期时间类型的…...

idea大量爆红问题解决

问题描述 在学习和工作中&#xff0c;idea是程序员不可缺少的一个工具&#xff0c;但是突然在有些时候就会出现大量爆红的问题&#xff0c;发现无法跳转&#xff0c;无论是关机重启或者是替换root都无法解决 就是如上所展示的问题&#xff0c;但是程序依然可以启动。 问题解决…...

【网络】每天掌握一个Linux命令 - iftop

在Linux系统中&#xff0c;iftop是网络管理的得力助手&#xff0c;能实时监控网络流量、连接情况等&#xff0c;帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...

2025年能源电力系统与流体力学国际会议 (EPSFD 2025)

2025年能源电力系统与流体力学国际会议&#xff08;EPSFD 2025&#xff09;将于本年度在美丽的杭州盛大召开。作为全球能源、电力系统以及流体力学领域的顶级盛会&#xff0c;EPSFD 2025旨在为来自世界各地的科学家、工程师和研究人员提供一个展示最新研究成果、分享实践经验及…...

Java如何权衡是使用无序的数组还是有序的数组

在 Java 中,选择有序数组还是无序数组取决于具体场景的性能需求与操作特点。以下是关键权衡因素及决策指南: ⚖️ 核心权衡维度 维度有序数组无序数组查询性能二分查找 O(log n) ✅线性扫描 O(n) ❌插入/删除需移位维护顺序 O(n) ❌直接操作尾部 O(1) ✅内存开销与无序数组相…...

电脑插入多块移动硬盘后经常出现卡顿和蓝屏

当电脑在插入多块移动硬盘后频繁出现卡顿和蓝屏问题时&#xff0c;可能涉及硬件资源冲突、驱动兼容性、供电不足或系统设置等多方面原因。以下是逐步排查和解决方案&#xff1a; 1. 检查电源供电问题 问题原因&#xff1a;多块移动硬盘同时运行可能导致USB接口供电不足&#x…...

2.Vue编写一个app

1.src中重要的组成 1.1main.ts // 引入createApp用于创建应用 import { createApp } from "vue"; // 引用App根组件 import App from ./App.vue;createApp(App).mount(#app)1.2 App.vue 其中要写三种标签 <template> <!--html--> </template>…...

Ascend NPU上适配Step-Audio模型

1 概述 1.1 简述 Step-Audio 是业界首个集语音理解与生成控制一体化的产品级开源实时语音对话系统&#xff0c;支持多语言对话&#xff08;如 中文&#xff0c;英文&#xff0c;日语&#xff09;&#xff0c;语音情感&#xff08;如 开心&#xff0c;悲伤&#xff09;&#x…...

Axios请求超时重发机制

Axios 超时重新请求实现方案 在 Axios 中实现超时重新请求可以通过以下几种方式&#xff1a; 1. 使用拦截器实现自动重试 import axios from axios;// 创建axios实例 const instance axios.create();// 设置超时时间 instance.defaults.timeout 5000;// 最大重试次数 cons…...

【python异步多线程】异步多线程爬虫代码示例

claude生成的python多线程、异步代码示例&#xff0c;模拟20个网页的爬取&#xff0c;每个网页假设要0.5-2秒完成。 代码 Python多线程爬虫教程 核心概念 多线程&#xff1a;允许程序同时执行多个任务&#xff0c;提高IO密集型任务&#xff08;如网络请求&#xff09;的效率…...