너 바보 아니야

Etcd一文

2021-11-04

Etcd

一、概述

背景:近期k8s应用中etcd的功能存在一些困惑,对其进行来单独的学习,能更深入理解k8s中的的一些特性。

  • 简单:安装配置简单,而且提供了HTTP API进行交互,使用也很简单
  • 安全:支持SSL证书验证
  • 快速:根据官方提供的benchmark数据,单实例支持每秒2k+读操作
  • 可靠:采用raft算法,实现分布式系统数据的可用性和一致性

二、应用场景

  • 服务注册与发现
  • 消息发布与订阅
  • 负载均衡
  • 分部署通知与协调
  • 分布式锁
  • 分布式队列
  • 集群与监控与Leader选举

三、安装部署

推荐使用yum安装方式

hostnamectl set-hostname etcd-1
wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -ivh epel-release-latest-7.noarch.rpm

yum 仓库中的etcd版本为3.3.11,如果需要最新版本的etcd可以进行二进制安装

yum -y install etcd
systemctl enable etcd

四、简单使用

1、增加 set

$ etcdctl set /testdir/testkey “Hello world”
Hello world

2、删除 rm

$ etcdctl rm /testdir/testkey
PrevNode.Value: Hello

3、更新 update

etcdctl update /testdir/testkey “Hello”
Hello

4、查询 get

etcdctl get /testdir/testkey
Hello world

五、总结

  • etcd 默认只保存 1000 个历史事件,所以不适合有大量更新操作的场景,这样会导致数据的丢失。 etcd 典型的应用场景是配置管理和服务发现,这些场景都是读多写少的。

  • 相比于 zookeeper,etcd 使用起来要简单很多。不过要实现真正的服务发现功能,etcd 还需要和其他工具(比如 registrator、confd 等)一起使用来实现服务的自动注册和更新。

  • 目前 etcd 还没有图形化的工具。

标签: Etcd
使用支付宝打赏
使用微信打赏

欢迎点击上方按钮对我打赏,谢谢你给我吃糖果