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

宿松做网站平台推广网站

宿松做网站,平台推广网站,电脑网站 发展移动端,自己做网站是用什么软件文章目录 前言一、简介1. 简介2. 特点3. 端口介绍 二、etcd安装教程(单机版)1. 复制脚本2. 增加执行权限3. 执行脚本4. 查看启动状态5. 卸载etcd 三、etcd安装教程(集群版)1. 复制脚本2. 增加执行权限3. 分发脚本4. 执行脚本5. 启…

文章目录

  • 前言
  • 一、简介
    • 1. 简介
    • 2. 特点
    • 3. 端口介绍
  • 二、etcd安装教程(单机版)
    • 1. 复制脚本
    • 2. 增加执行权限
    • 3. 执行脚本
    • 4. 查看启动状态
    • 5. 卸载etcd
  • 三、etcd安装教程(集群版)
    • 1. 复制脚本
    • 2. 增加执行权限
    • 3. 分发脚本
    • 4. 执行脚本
    • 5. 启动etcd新集群
      • 5.1 复制脚本
      • 5.2 增加执行权限
      • 5.3 执行脚本
      • 5.4 查看启动状态
    • 6. 启动已存在的etcd集群
      • 6.1 复制脚本
      • 6.2 增加执行权限
      • 6.3 执行脚本
    • 7. 停止集群
    • 8. 卸载etcd
  • 四、etcd客户端命令
    • 1. 语法
    • 2. 命令
      • 2.1 成员命令
        • 2.1.1 查看成员列表
        • 2.1.2 更新成员
        • 2.1.3 删除成员
        • 2.1.4 添加成员
        • 2.1.5 添加成员为学习者
      • 2.2 警报命令
      • 2.3 认证命令
      • 2.4 检查命令
      • 2.5 节点检查命令
        • 2.5.1 查看当前节点的健康状况
        • 2.5.2 查看指定节点的健康状况
        • 2.5.3 查看指定节点的状态信息
      • 2.6 租赁命令
      • 2.7 角色命令
      • 2.8 快照命令
      • 2.9 用户命令
      • 2.10 其他命令
    • 3. 选项
  • 五、etcd调优
    • 1. 时间参数调优
    • 2. 快照调优
    • 3. 磁盘调优
    • 4. 网络调优
    • 5. CPU调优
  • 总结


前言

本文介绍了etcd的基本概念、特点和端口介绍。然后提供了etcd安装教程,包括单机版和集群版的安装步骤。对于集群版,还详细说明了如何添加成员、删除成员以及启动已存在的etcd集群等操作。接下来列举了一些常用的etcd客户端命令,并给出了选项说明。

最后,针对性能调优方面,提供了时间参数调优、快照调优、磁盘调优、网络调优和中央处理器设置等建议。

希望这篇文章能够帮助您理解并使用etcd分布式键值存储系统。


一、简介

1. 简介

etcd是一个分布式键值存储系统,用于存储分布式系统中最关键的数据,由CoreOS开发并作为开源项目进行维护。它使用Raft一致性算法来实现高可用性和数据一致性,并提供了简单的HTTP
API用于读取、写入和观察存储在其上的键值对。

2. 特点

  1. 分布式:etcd被设计为一个分布式系统,可以运行在多台机器上组成集群。通过将数据复制到不同节点上,并使用Raft协议确保数据副本之间的强一致性,从而实现高可靠性和容错能力。

  2. 键值存储:etcd以类似字典(key-value)形式保存数据。每个key都与一个value相关联,并且可以根据key进行读取、写入或删除操作。

  3. 强一致性:通过Raft算法提供强一致性保证,在集群中所有节点之间达成共识以确保数据副本之间始终保持同步状态。

  4. 高可用:由于采用了分布式架构,当某些节点失效时,其他健康节点仍然能够正常工作并提供服务。这使得应用程序能够持续访问和更新存储在etcd中的信息。

  5. 监视功能:除了基本CRUD操作外,etcd还提供了监视功能,允许应用程序监听特定键的更改事件。这使得应用程序能够实时感知数据变化并做出相应的响应。

  6. 安全性:etcd支持基于TLS(传输层安全)的加密通信,并提供身份验证和授权机制来保护数据的安全性。

3. 端口介绍

  1. 端口 2379 是 etcd 的客户端监听端口。当你想要与 etcd 进行交互时(例如读取或写入键值对),需要使用这个端口来连接到 etcd 实例。
  2. 端口 2380 是 etcd 的对等节点通信监听端口。etcd 集群中的各个节点之间通过这个端口进行通信和同步数据。

二、etcd安装教程(单机版)

开始安装之前检查节点是否可以访问到github,若不能访问,解决方法如下:

  • Windows和Linux访问不了GitHub的解决方法

此shell脚本执行后会自动安装并启动 etcd。

1. 复制脚本

首先,将以下脚本内容复制并保存为/tmp/install_etcd.sh文件。

#!/bin/bashETCD_VERSION='3.5.4'
ETCD_INSTALLDIR='/opt/module/etcd'install_etcd() {local etcd_name="etcd-v${1}-linux-amd64"local etcd_url="https://github.com/etcd-io/etcd/releases/download/v${1}/etcd-v${1}-linux-amd64.tar.gz"if [ -z "$(command -v etcd)" ]; thenif [ ! -d "${2}" ]; thenmkdir -p "${2}"fiif [ ! -f /tmp/"${etcd_name}".tar.gz ]; thenwget "$etcd_url" -P /tmpif [ $? -ne 0 ]; thenecho "${etcd_name}.tar.gz下载失败,请重试或手动下载到/tmp目录下再次执行"echo "下载地址:$etcd_url"exit 1fifiif [ -d "${2}/${etcd_name}" ]; thenrm -rf "${2}/${etcd_name}"fitar -zxvf /tmp/etcd-v"${1}"-linux-amd64.tar.gz -C "${2}"sudo cp -a "${2}"/etcd-v"${1}"-linux-amd64/etcd "${2}"/etcd-v"${1}"-linux-amd64/etcdctl /usr/bin/nohup "${2}"/etcd-v"${1}"-linux-amd64/etcd >/tmp/etcd.log 2>&1 &fi
}install_etcd $ETCD_VERSION $ETCD_INSTALLDIRexit 0

2. 增加执行权限

在终端中执行以下命令,为脚本添加执行权限。

chmod a+x /tmp/install_etcd.sh

3. 执行脚本

执行以下命令,运行脚本开始下载、安装和配置Apisix。

/tmp/install_etcd.sh

请等待安装完成,如有异常会有提示。

4. 查看启动状态

etcdctl member list

返回结果如下所示,started表示已启动。

[root@hadoop103 ~]# etcdctl member list
8e9e05c52164694d, started, default, http://localhost:2380, http://localhost:2379, false

5. 卸载etcd

删除对应文件和目录即可。

rm -rf /root/default.etcd
rm -rf /root/etcd01.etcd
rm -rf /usr/bin/etcd
rm -rf /usr/bin/etcdctl
rm -rf /usr/lib/firewalld/services/etcd-client.xml
rm -rf /usr/lib/firewalld/services/etcd-server.xml
rm -rf /opt/module/etcd

三、etcd安装教程(集群版)

集群版安装之前,先准备好三个节点。并已经设置好集群免密登录。

  • 配置集群免密登录教程

在这里,准备的集群节点为:192.168.145.103192.168.145.104192.168.145.105

1. 复制脚本

首先,在192.168.145.103节点将以下脚本内容复制并保存为/tmp/install_etcd.sh文件。

#!/bin/bashETCD_VERSION='3.5.4'
ETCD_INSTALLDIR='/opt/module/etcd'install_etcd() {local etcd_name="etcd-v${1}-linux-amd64"local etcd_url="https://github.com/etcd-io/etcd/releases/download/v${1}/etcd-v${1}-linux-amd64.tar.gz"if [ -z "$(command -v etcd)" ]; thenif [ ! -d "${2}" ]; thenmkdir -p "${2}"fiif [ ! -f /tmp/"${etcd_name}".tar.gz ]; thenwget "$etcd_url" -P /tmpif [ $? -ne 0 ]; thenecho "${etcd_name}.tar.gz下载失败,请重试或手动下载到/tmp目录下再次执行"echo "下载地址:$etcd_url"exit 1fifiif [ -d "${2}/${etcd_name}" ]; thenrm -rf "${2}/${etcd_name}"fitar -zxvf /tmp/etcd-v"${1}"-linux-amd64.tar.gz -C "${2}"sudo cp -a "${2}"/etcd-v"${1}"-linux-amd64/etcd "${2}"/etcd-v"${1}"-linux-amd64/etcdctl /usr/bin/# nohup "${2}"/etcd-v"${1}"-linux-amd64/etcd >/tmp/etcd.log 2>&1 &fi
}install_etcd $ETCD_VERSION $ETCD_INSTALLDIRexit 0

2. 增加执行权限

在终端中执行以下命令,为脚本添加执行权限。

chmod a+x /tmp/install_etcd.sh

3. 分发脚本

使用scp命令把脚本分发到192.168.145.104192.168.145.105节点。

scp /tmp/install_etcd.sh 192.168.145.104:/tmp/
scp /tmp/install_etcd.sh 192.168.145.105:/tmp/

4. 执行脚本

192.168.145.103节点执行以下命令,开始在三个节点分别运行脚本,开始下载和安装etcd。

/tmp/install_etcd.sh
ssh 192.168.145.104 /tmp/install_etcd.sh
ssh 192.168.145.105 /tmp/install_etcd.sh

请等待安装完成,如有异常会有提示。

5. 启动etcd新集群

5.1 复制脚本

将以下脚本内容复制并保存为/tmp/etcd_start_info.sh文件。
需要把etcd集群节点更换为自己的集群节点。

#!/bin/bash# etcd集群节点
node1=192.168.145.103
node2=192.168.145.104
node3=192.168.145.105# etcd版本
ETCD_VERSION='3.5.4'
# etcd安装目录
ETCD_INSTALLDIR='/opt/module/etcd'nodes=($node1 $node2 $node3)for node in "${nodes[@]}"
doecho "复制下面脚本到 $node 执行启动etcd"echo "nohup \\
etcd --name etcd$(echo $node | awk -F '.' '{print $NF}') --initial-advertise-peer-urls http://$node:2380 \\--listen-peer-urls http://$node:2380 \\--listen-client-urls http://$node:2379,http://127.0.0.1:2379 \\--advertise-client-urls http://$node:2379 \\--data-dir $ETCD_INSTALLDIR/etcd-v$ETCD_VERSION-linux-amd64/data \\--initial-cluster-token etcd-cluster-1 \\--initial-cluster etcd$(echo $node1 | awk -F '.' '{print $NF}')=http://$node1:2380,etcd$(echo $node2 | awk -F '.' '{print $NF}')=http://$node2:2380,etcd$(echo $node3 | awk -F '.' '{print $NF}')=http://$node3:2380 \\--initial-cluster-state new \\--auto-tls \\--peer-auto-tls \\> /tmp/etcd.log 2>&1 &"echo "-----------------------------------------------------------------------"
doneexit 0

5.2 增加执行权限

在终端中执行以下命令,为脚本添加执行权限。

chmod a+x /tmp/etcd_start_info.sh

5.3 执行脚本

执行此脚本后会打印集群的启动命令,然后根据打印的启动命令,分别复制到三个节点执行启动etcd集群。

/tmp/etcd_start_info.sh

执行后结果如下图所示:

在这里插入图片描述

5.4 查看启动状态

etcdctl member list

返回结果如下所示,started表示已启动。

[root@hadoop103 ~]# etcdctl member list
d1ba583667016d5, started, etcd103, http://192.168.145.103:2380, http://192.168.145.103:2379, false
1fdc35df8ab0c538, started, etcd105, http://192.168.145.105:2380, http://192.168.145.105:2379, false
68d20b112ee2f6c4, started, etcd104, http://192.168.145.104:2380, http://192.168.145.104:2379, false

6. 启动已存在的etcd集群

6.1 复制脚本

将以下脚本内容复制并保存为/tmp/etcd_start_info.sh文件。
需要把etcd集群节点更换为自己的集群节点。
与上面一个脚本不同的是--initial-cluster-state existing,这里的初始化集群状态是已存在。

#!/bin/bash# etcd集群节点
node1=192.168.145.103
node2=192.168.145.104
node3=192.168.145.105# etcd版本
ETCD_VERSION='3.5.4'
# etcd安装目录
ETCD_INSTALLDIR='/opt/module/etcd'nodes=($node1 $node2 $node3)for node in "${nodes[@]}"
doecho "复制下面脚本到 $node 执行启动etcd"echo "nohup \\
etcd --name etcd$(echo $node | awk -F '.' '{print $NF}') --initial-advertise-peer-urls http://$node:2380 \\--listen-peer-urls http://$node:2380 \\--listen-client-urls http://$node:2379,http://127.0.0.1:2379 \\--advertise-client-urls http://$node:2379 \\--data-dir $ETCD_INSTALLDIR/etcd-v$ETCD_VERSION-linux-amd64/data \\--initial-cluster-token etcd-cluster-1 \\--initial-cluster etcd$(echo $node1 | awk -F '.' '{print $NF}')=http://$node1:2380,etcd$(echo $node2 | awk -F '.' '{print $NF}')=http://$node2:2380,etcd$(echo $node3 | awk -F '.' '{print $NF}')=http://$node3:2380 \\--initial-cluster-state existing \\--auto-tls \\--peer-auto-tls \\> /tmp/etcd.log 2>&1 &"echo "-----------------------------------------------------------------------"
doneexit 0

6.2 增加执行权限

在终端中执行以下命令,为脚本添加执行权限。

chmod a+x /tmp/etcd_start_info.sh

6.3 执行脚本

执行此脚本后会打印集群的启动命令,然后根据打印的启动命令,分别复制到三个节点执行启动etcd集群。

/tmp/etcd_start_info.sh

7. 停止集群

可以通过杀死集群节点对应的进程来停止。

kill -9 $(ps -ef | grep etcd | awk 'NR==1 {print $2}')

8. 卸载etcd

删除对应文件和目录即可。

rm -rf /root/default.etcd
rm -rf /root/etcd01.etcd
rm -rf /usr/bin/etcd
rm -rf /usr/bin/etcdctl
rm -rf /usr/lib/firewalld/services/etcd-client.xml
rm -rf /usr/lib/firewalld/services/etcd-server.xml
rm -rf /opt/module/etcd

四、etcd客户端命令

1. 语法

etcdctl [flags]

2. 命令

2.1 成员命令

作用命令
在目标etcd集群上创建镜像etcdctl make-mirror
向集群中添加成员etcdctl member add
列出集群中的所有成员etcdctl member list
提升集群中无投票权的成员etcdctl member promote
从集群中移除成员etcdctl member remove
更新集群中的成员etcdctl member update
2.1.1 查看成员列表
etcdctl member list

返回结果如下:
依次解释:成员ID、成员状态、成员名称、成员的节点通信端口、成员的客户端监听端口、是否是学习者(是否有投票权,学习者无投票权)。

[root@hadoop101 ~]# etcdctl member list
d1ba583667016d5, started, etcd01, http://192.168.145.103:2380, http://192.168.145.103:2379, false
1fdc35df8ab0c538, started, etcd03, http://192.168.145.105:2380, http://192.168.145.105:2379, false
68d20b112ee2f6c4, started, etcd02, http://192.168.145.104:2380, http://192.168.145.104:2379, false
2.1.2 更新成员
etcdctl member update <memberID> [options] [flags]

示例:修改成员ID为 d1ba583667016d5 的 peerURLs 值

etcdctl member update d1ba583667016d5 --peer-urls=http://hadoop101:2380
2.1.3 删除成员

删除成员后,目标成员将自动停止。删除领导者是安全的,但是在选举新领导者时,集群将处于非活动状态。此持续时间通常是选举超时时间加上投票过程时间。

etcdctl member remove <memberID> [flags]

示例:删除ID为 1fdc35df8ab0c538 的成员

etcdctl member remove 1fdc35df8ab0c538
2.1.4 添加成员

添加的成员默认是未启动状态。如果添加多个成员,最佳做法是一次配置一个成员,并在添加更多新成员之前验证它是否正确启动。

etcdctl member add <memberName> [options] [flags]

示例:将192.168.145.105添加为成员

etcdctl member add etcd03 --peer-urls=http://192.168.145.105:2380

返回结果如下,添加之后,etcdctl会将新成员通知集群,并打印出成功启动该成员所需的环境变量。

[root@hadoop101 ~]# etcdctl member add etcd03 --peer-urls=http://192.168.145.105:2380
Member 5c48c1ac9bc63420 added to cluster a479f5112595b52aETCD_NAME="etcd03"
ETCD_INITIAL_CLUSTER="etcd01=http://192.168.145.103:2380,etcd03=http://192.168.145.105:2380,etcd02=http://192.168.145.104:2380"
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.145.105:2380"
ETCD_INITIAL_CLUSTER_STATE="existing"

然后使用提示的环境变量来启动成员。etcd默认的数据目录是 /var/lib/etcd。

export ETCD_NAME="etcd03"
export ETCD_INITIAL_CLUSTER="etcd01=http://192.168.145.103:2380,etcd03=http://192.168.145.105:2380,etcd02=http://192.168.145.104:2380"
export ETCD_INITIAL_CLUSTER_STATE="existing"
etcd --listen-client-urls http://192.168.145.105:2379 --advertise-client-urls http://192.168.145.105:2379 --listen-peer-urls http://192.168.145.105:2380 --initial-advertise-peer-urls http://192.168.145.105:2380 --data-dir /opt/module/etcd/etcd-v3.5.4-linux-amd64/data
2.1.5 添加成员为学习者

示例:将192.168.145.105添加为学习者(无投票权)

etcdctl member add etcd03 --peer-urls=http://192.168.145.105:2380 --learner

返回结果如下:

[root@hadoop101 ~]# etcdctl member add etcd03 --peer-urls=http://192.168.145.105:2380 --learner
Member ee78e1bfdc50b692 added to cluster a479f5112595b52aETCD_NAME="etcd03"
ETCD_INITIAL_CLUSTER="etcd01=http://192.168.145.103:2380,etcd02=http://192.168.145.104:2380,etcd03=http://192.168.145.105:2380"
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.145.105:2380"
ETCD_INITIAL_CLUSTER_STATE="existing"

然后使用提示的环境变量来启动成员。

export ETCD_NAME="etcd03"
export ETCD_INITIAL_CLUSTER="etcd01=http://192.168.145.103:2380,etcd03=http://192.168.145.105:2380,etcd02=http://192.168.145.104:2380"
export ETCD_INITIAL_CLUSTER_STATE="existing"
etcd --listen-client-urls http://192.168.145.105:2379 --advertise-client-urls http://192.168.145.105:2379 --listen-peer-urls http://192.168.145.105:2380 --initial-advertise-peer-urls http://192.168.145.105:2380 --data-dir /opt/module/etcd/etcd-v3.5.4-linux-amd64/data

将学习者提升为投票成员。

etcdctl member promote 1c9175de16617613

2.2 警报命令

作用命令
解除所有警报etcdctl alarm disarm
列出所有告警etcdctl alarm list

2.3 认证命令

作用命令
禁用验证etcdctl auth disable
支持身份验证etcdctl auth enable
返回认证状态etcdctl auth status

2.4 检查命令

作用命令
检查给定服务器端点上不同工作负载保存数据的内存使用情况etcdctl check datascale
检查etcd集群性能etcdctl check perf

2.5 节点检查命令

作用命令
打印–endpoints中每个端点的KV历史散列etcdctl endpoint hashkv
检查`–endpoint`标志中指定的端点的健康状况etcdctl endpoint health
输出`–endpoint`标志中指定的端点的状态etcdctl endpoint status
2.5.1 查看当前节点的健康状况
etcdctl endpoint health

返回结果如下:

[root@hadoop103 ~]# etcdctl endpoint health
127.0.0.1:2379 is healthy: successfully committed proposal: took = 9.168536ms
2.5.2 查看指定节点的健康状况
etcdctl --endpoints=192.168.145.103:2379 endpoint health

etcdctl --endpoints=192.168.145.103:2379,192.168.145.104:2379,192.168.145.105:2379 endpoint health

返回结果如下:

[root@hadoop103 ~]# etcdctl --endpoints=192.168.145.103:2379 endpoint health
192.168.145.103:2379 is healthy: successfully committed proposal: took = 6.77289ms
[root@hadoop103 ~]# etcdctl --endpoints=192.168.145.103:2379,192.168.145.104:2379,192.168.145.105:2379 endpoint health
192.168.145.103:2379 is healthy: successfully committed proposal: took = 14.523788ms
192.168.145.105:2379 is healthy: successfully committed proposal: took = 14.921994ms
192.168.145.104:2379 is healthy: successfully committed proposal: took = 23.501004ms
2.5.3 查看指定节点的状态信息
etcdctl --endpoints=192.168.145.103:2379 endpoint status

返回结果如下:

[root@hadoop103 ~]# etcdctl --endpoints=192.168.145.103:2379 endpoint status
192.168.145.103:2379, d1ba583667016d5, 3.5.4, 78 kB, false, false, 17, 269, 269, 

2.6 租赁命令

作用命令
创建租赁etcdctl lease grant
保持租约有效(续期)etcdctl lease keep-alive
列出所有有效租约etcdctl lease list
撤销租赁etcdctl lease revoke
获取租赁信息etcdctl lease timetolive

2.7 角色命令

作用命令
添加新角色etcdctl role add
删除角色etcdctl role delete
获取角色的详细信息etcdctl role get
向角色授予密钥etcdctl role grant-permission
列出所有角色etcdctl role list
从角色中撤销密钥etcdctl role revoke-permission

2.8 快照命令

作用命令
将etcd成员快照恢复到etcd目录etcdctl snapshot restore
将etcd节点后端快照存储到给定文件etcdctl snapshot save
获取给定文件的后端快照状态etcdctl snapshot status

2.9 用户命令

作用命令
添加新用户etcdctl user add
删除用户etcdctl user delete
获取用户的详细信息etcdctl user get
将角色授予用户etcdctl user grant-role
列出所有用户etcdctl user list
修改用户密码etcdctl user passwd
从用户中撤销角色etcdctl user revoke-role

2.10 其他命令

作用命令
在etc中压缩事件历史etcdctl compaction
对具有给定端点的etcd成员的存储进行碎片整理etcdctl defrag
删除指定的键或键的范围[key, range_end]etcdctl del
观察并参与领导选举etcdctl elect
获取键或键的范围etcdctl get
关于任何命令的帮助etcdctl help
获取命名锁etcdctl lock
将领导权转移到另一个etcd集群成员。etcdctl move-leader
将给定的键放入存储中etcdctl put
Txn在一个事务中处理所有请求etcdctl txn
打印etcdctl的版本etcdctl version
监视键或前缀上的事件流etcdctl watch

3. 选项

作用选项
使用此CA包验证启用tls的安全服务器的证书–cacert=“”
使用此TLS证书文件识别安全客户端–cert=“”
短命令超时(不包括拨号超时)–command-timeout=5s
启用客户端调试日志–debug[=false]
为客户端连接拨超时–dial-timeout=2s
查询描述集群端点的SRV记录-d, --discovery-srv=“”
使用DNS发现时要查询的服务名称–discovery-srv-name=“”
gRPC端点–endpoints=[127.0.0.1:2379]
帮助etcdctl-h, --help[=false]
将字节字符串打印为十六进制编码字符串–hex[=false]
接受描述集群端点的不安全SRV记录–insecure-discovery[=true]
跳过服务器证书验证(注意:此选项应仅用于测试目的)–insecure-skip-tls-verify[=false]
禁用客户端连接的传输安全性–insecure-transport[=true]
客户端连接的保持连接时间–keepalive-time=2s
客户端连接的Keepalive超时–keepalive-timeout=6s
使用此TLS密钥文件识别安全客户端–key=“”
身份验证的密码(如果使用了这个选项,——user选项不应该包含Password)–password=“”
用户名[:密码]用于身份验证(如果未提供密码则提示)–user=“”
设置输出格式(fields, json, protobuf, simple, table)-w, --write-out=“simple”

五、etcd调优

1. 时间参数调优

etcd依赖于两个独立的时间参数,分别是心跳间隔(heartbeat-interval,默认100ms)和选举超时时间(
election-timeout,默认1000ms)。 对于一个集群,心跳间隔和选举超时值应相同。为 etcd 成员设置不同的值可能会破坏集群稳定性。

etcd --heartbeat-interval=100 --election-timeout=500

ETCD_HEARTBEAT_INTERVAL=100 ETCD_ELECTION_TIMEOUT=500 etcd

2. 快照调优

etcd 会将所有关键更改附加到日志文件中。日志将会无限增长,并且是对密钥所做的每次更改的完整线性历史记录。完整的历史记录适用于使用较少的集群,但使用频繁的集群会携带大量日志。
为了避免产生大量的日志,etcd 会定期制作快照。这些快照为 etcd 提供了一种通过保存系统当前状态和删除旧日志来压缩日志的方法。
snapshot-count:更改次数,默认10000次。 如果 etcd 的内存使用率和磁盘使用率过高,可以通过设置snapshot-count参数来降低快照阈值:

etcd --snapshot-count=5000

ETCD_SNAPSHOT_COUNT=5000 etcd

3. 磁盘调优

etcd 集群对磁盘延迟非常敏感,可以对etcd设置线程高优先级。

sudo ionice -c2 -n0 -p `pgrep etcd`

4. 网络调优

如果 etcd leader 处理大量并发客户端请求,可能会因网络拥塞而延迟处理 follower peer 请求。这表现为在从属节点上发送缓冲区错误消息:

dropped MsgProp to 247ae21ff9436b2d since streamMsg's sending buffer is full
dropped MsgAppResp to 247ae21ff9436b2d since streamMsg's sending buffer is full

这些错误可以通过将 etcd 的对等流量优先于其客户端流量来解决。使用流量控制机制对对等流量进行优先级排序:

tc qdisc add dev eth0 root handle 1: prio bands 3
tc filter add dev eth0 parent 1: protocol ip prio 1 u32 match ip sport 2380 0xffff flowid 1:1
tc filter add dev eth0 parent 1: protocol ip prio 1 u32 match ip dport 2380 0xffff flowid 1:1
tc filter add dev eth0 parent 1: protocol ip prio 2 u32 match ip sport 2379 0xffff flowid 1:1
tc filter add dev eth0 parent 1: protocol ip prio 2 u32 match ip dport 2379 0xffff flowid 1:1

要取消 ,请执行:

tc qdisc del dev eth0 root

5. CPU调优

由于 etcd 对延迟非常敏感,因此可以通过将 CPU 调控器设置为性能或保守模式来进一步优化 Linux 系统的性能。

echo performance | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor

总结

在本文中我们学习到:

  • etcd是一个分布式键值存储系统,具有高可用性和数据一致性。
  • etcd支持通过Raft算法实现强一致性保证。
  • etcd具有分布式架构,在节点失效时仍然可以正常工作并提供服务。
  • etchd除基本CRUD操作外还支持监视功能来实时感知数据变化。
  • 安全方面,etchd支持加密通信,并提供身份验证和授权机制保护数据安全。

同时我们也学习到如何在单机环境或者多节点环境下安装etcd,并了解了一些常用的etcd客户端命令和选项。

最后,我们还提供了一些性能调优建议,包括时间参数调优、快照调优、磁盘调优、网络调优和中央处理器设置等方面的建议。

希望本教程对您有所帮助!如有任何疑问或问题,请随时在评论区留言。感谢阅读!

参考链接:

  • etcd集群部署
  • etcd配置选项
  • etcd官方文档
http://www.qdjiajiao.com/news/2107.html

相关文章:

  • 如何做擦边球网站企业网站设计图片
  • 网站建设时间影响因素关键词智能优化排名
  • 承德网站制作报价百度pc端提升排名
  • php 文档系统wordpress福州网站seo优化公司
  • 用vs做网页是怎么创建网站的产品推广营销
  • 网站5建设需要学什么条件长春网站建设方案优化
  • 如何与老板谈网站建设百度seo网站
  • 怎么给人介绍自己做的网站今日头条搜索优化
  • 做网站不用数据库可以吗宣传方式
  • 一流的盘锦网站建设如何网上免费做推广
  • 广州北京网站建设服务之家网站推广公司
  • wordpress采集别人公众号seo技术分享免费咨询
  • 视频剪辑制作教学北京专门做seo
  • 如何把公司的网站做的靠前上海优化网站公司哪家好
  • ssr网站怎么做wifi优化大师下载
  • 如何做网站活动品牌营销包括哪些方面
  • 做基础工程分包应上什么网站营销型网站建站
  • 深圳品牌模板网站建设河南网站优化排名
  • 建设网站所采用的技术奇零seo赚钱培训
  • 在深圳做网站平台需要什么备案新网店怎么免费推广
  • 海南做网站的技术公司营销型网站和普通网站
  • 移动开发网站开发区别seo3
  • 代理地址怎么设置防疫优化措施
  • 南京网站建设王道下拉??营销课程培训视频
  • 网监备案网站更换域名百度我的订单
  • 个人设计师网站 青春南京seo推广公司
  • 软件著作权怎么写湖南网站建设推广优化
  • 商业网站建设案例教程徐州网站建设方案优化
  • 网站的建设与维护实践报告做广告的怎么找客户
  • 如何网上卖东西潍坊seo招聘