一起学习ETCD系列——简单安装

这篇具有很好参考价值的文章主要介绍了一起学习ETCD系列——简单安装。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

概要

在微服务中服务发现是必不可少的,此时ETCD中间件就是一种可选项,其实ETCD除了服务发现功能,还有:

  1. 元数据存储,比如存储服务配置等数据,以实现配置中心化,进行统一的,有版本记录的变更管理;
  2. 分布式锁;
  3. 选主,master-slave的软件架构中可以通过etcd快速实现选主的功能。

ETCD 采用 raft 算法,实现分布式数据的一致性和高可用,遵循CP原则,支持10 k/s 的并发读写操作。

一、安装

安装的方法有很多:

  • 二进制安装;
  • yum一键安装;
  • docker安装;

安装模式有单点和集群两种;

1.1 单点

直接yum下最简单了:

yum install etcd

如果服务器上已经装有docker了,可以docker安装:

docker pull bitnami/etcd:latest
docker network create app-tier --driver bridge
docker run -d --name etcd-server \
    --network app-tier \
    --publish 2379:2379 \
    --publish 2380:2380 \
    --env ALLOW_NONE_AUTHENTICATION=yes \
    --env ETCD_ADVERTISE_CLIENT_URLS=http://etcd-server:2379 \
    bitnami/etcd:latest
1.2 集群

这里采用二进制的方式,首先到github下载自己所要的版本,本人选的v3.5.11。

ETCD集群部署有三种模式:

  • 静态配置;
  • ETCD 动态发现;
  • DNS发现。

由于是测试使用,所以在一台Linux服务器上基于静态配置搭建了个三节点的集群。
配置项指标见官网
节点1:

mkdir -p /usr/local/etcd-v3.5.11/etcd1/data
vim /usr/local/etcd-v3.5.11/etcd1/conf.yml
name: etcd1
data-dir: /usr/local/etcd-v3.5.11/etcd1/data
initial-advertise-peer-urls: http://127.0.0.1:2380
listen-peer-urls: http://127.0.0.1:2380
listen-client-urls: http://172.20.101.222:2379,http://127.0.0.1:2379
advertise-client-urls: http://127.0.0.1:2379
initial-cluster-token: test-etcd-cluster
initial-cluster: etcd1=http://127.0.0.1:2380,etcd2=http://127.0.0.1:2370,etcd3=http://127.0.0.1:2360
initial-cluster-state: new

节点2:

mkdir -p /usr/local/etcd-v3.5.11/etcd2/data
vim /usr/local/etcd-v3.5.11/etcd2/conf.yml
name: etcd2
data-dir: /usr/local/etcd-v3.5.11/etcd2/data
initial-advertise-peer-urls: http://127.0.0.1:2370
listen-peer-urls: http://127.0.0.1:2370
listen-client-urls: http://172.20.101.222:2369,http://127.0.0.1:2369
advertise-client-urls: http://127.0.0.1:2369
initial-cluster-token: test-etcd-cluster
initial-cluster: etcd1=http://127.0.0.1:2380,etcd2=http://127.0.0.1:2370,etcd3=http://127.0.0.1:2360
initial-cluster-state: new

节点3:

mkdir -p /usr/local/etcd-v3.5.11/etcd3/data
vim /usr/local/etcd-v3.5.11/etcd3/conf.yml
name: etcd2
data-dir: /usr/local/etcd-v3.5.11/etcd3/data
initial-advertise-peer-urls: http://127.0.0.1:2360
listen-peer-urls: http://127.0.0.1:2360
listen-client-urls: http://172.20.101.222:2359,http://127.0.0.1:2359
advertise-client-urls: http://127.0.0.1:2359
initial-cluster-token: test-etcd-cluster
initial-cluster: etcd1=http://127.0.0.1:2380,etcd2=http://127.0.0.1:2370,etcd3=http://127.0.0.1:2360
initial-cluster-state: new

启动:

/usr/local/etcd-v3.5.11/etcd --config-file /usr/local/etcd-v3.5.11/etcd1/conf.yml
/usr/local/etcd-v3.5.11/etcd --config-file /usr/local/etcd-v3.5.11/etcd2/conf.yml
/usr/local/etcd-v3.5.11/etcd --config-file /usr/local/etcd-v3.5.11/etcd2/conf.yml

默认的etcdctrl使用的是v2版本的API,我们需要设置环境变量来使用v3版本的API:

#window
set ETCDCTL_API=3
#linux
export ETCDCTL_API=3

验证:

#查看集群状态
[root@test etcd-v3.5.11]# /usr/local/etcd-v3.5.11/etcdctl endpoint status --endpoints=127.0.0.1:2379,127.0.0.1:2369,127.0.0.1:2359 -w table
+----------------+------------------+---------+---------+-----------+------------+-----------+------------+--------------------+--------+
|    ENDPOINT    |        ID        | VERSION | DB SIZE | IS LEADER | IS LEARNER | RAFT TERM | RAFT INDEX | RAFT APPLIED INDEX | ERRORS |
+----------------+------------------+---------+---------+-----------+------------+-----------+------------+--------------------+--------+
| 127.0.0.1:2379 | 7637173a60d743e5 |  3.5.11 |   21 MB |      true |      false |        15 |      10843 |              10843 |        |
| 127.0.0.1:2369 | ce6b0efed2935560 |  3.5.11 |   21 MB |     false |      false |        15 |      10843 |              10843 |        |
| 127.0.0.1:2359 | 6ea1523f71bf92f0 |  3.5.11 |   21 MB |     false |      false |        15 |      10843 |              10843 |        |
+----------------+------------------+---------+---------+-----------+------------+-----------+------------+--------------------+--------+
#插入数据
[root@test etcd-v3.5.11]# /usr/local/etcd-v3.5.11/etcdctl put /test/hello helloworld
OK
#查看数据
[root@test etcd-v3.5.11]# /usr/local/etcd-v3.5.11/ get /test/hello
/test/hello
helloworld

至此就可以用于测试使用了,当然还支持配置校验,证书等功能。文章来源地址https://www.toymoban.com/news/detail-822592.html

到了这里,关于一起学习ETCD系列——简单安装的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【kubernetes】Etcd集群部署与验证

    前言 :二进制部署kubernetes集群在企业应用中扮演着非常重要的角色。无论是集群升级,还是证书设置有效期都非常方便,也是从事云原生相关工作从入门到精通不得不迈过的坎。通过本系列文章,你将从虚拟机准备开始,到使用二进制方式从零到一搭建起安全稳定的高可用

    2024年02月10日
    浏览(59)
  • 2、etcd单机部署和集群部署

    上一章我们认识了 etcd ,简单的介绍了 etcd 的基础概念,但是理解起来还是比较抽象的。这一章我们就一起来部署下 etcd 。这样可以让我们对 etcd 有更加确切的认识。 对于平常的学习,其实搭建一个单机节点是够了的。接下来就讲讲怎么搭建单机节点。 本次部署是在 centos

    2024年02月08日
    浏览(43)
  • [Kubernetes] etcd的集群基石作用

    1. 配置存储 etcd作为一个高度可靠的分布式键值存储系统,存储了Kubernetes集群的完整配置和状态数据。集群的元数据,包括节点信息、命名空间、部署、副本集、服务、持久卷声明等,全部存储在etcd中。 2. 数据一致性 etcd使用raft一致性算法保证了数据的强一致性,确保了在

    2024年04月24日
    浏览(35)
  • 微服务自动化 etcd集群搭建

    它需要开多个虚拟机 那我们就找到你使用的那个虚拟机复制 (强调两个主机都已经安装好了etcd服务并且能够正常运行) 不是复制就可以使用 我们需要把里面的不是vmdk和vmx的文件删了     然后再回到我们的虚拟机,鼠标右键选择打开   然后启动虚拟机它会提示我们是否已

    2024年01月17日
    浏览(45)
  • k8s中部署etcd集群

            Etcd是一个高可用的 、 开源的、分布式的Key/value存储系统 , 提供共享配置、服务的注册和发现、数据TTL失效、数据改变监视、多值、目录监听、分布式原子锁操作等功能 。 通常,k8s使用etcd进行数据存储,本文将部署etcd集群用做应用的存储。 一、前提         部

    2024年02月08日
    浏览(48)
  • Kubernetes高可用集群二进制部署(二)ETCD集群部署

    Kubernetes概述 使用kubeadm快速部署一个k8s集群 Kubernetes高可用集群二进制部署(一)主机准备和负载均衡器安装 Kubernetes高可用集群二进制部署(二)ETCD集群部署 Kubernetes高可用集群二进制部署(三)部署api-server Kubernetes高可用集群二进制部署(四)部署kubectl和kube-controller-man

    2024年02月14日
    浏览(43)
  • etcd单点部署集群及数据备份与恢复

    etcd单机集群部署 下载etcd 二进制安装包。 创建相关目录 在 /data/etcd/node1,/data/etcd/node2,/data/etcd/node3创建三个配置文件 node1.yml node2.yml node3.yml 配置文件参数解析 启动3个节点 查看集群状态 etcd备份脚本 etcd数据恢复 停止etcd 导入数据,如下 更改启动文件中data-dir为导入时的目

    2024年01月17日
    浏览(43)
  • etcd每个节点都存储了完整的键值对数据集,为什么扩容etcd集群仍可分散存储压力?

    etcd每个节点都存储了完整的键值对数据集,这主要是为了确保数据的一致性和高可用性。在这种设计下,任何一个节点都可以处理读取请求,并在本地提供数据,从而无需跨节点通信。这种冗余的数据存储方式也增加了系统的容错性,因为即使部分节点发生故障,其他节点仍

    2024年03月12日
    浏览(54)
  • 二进制搭建Kubernetes集群(一)——部署etcd集群和单master

    注意:生产环境中,etcd集群和master、node节点都应该部署在不同的机器上,此处为了实验方便,将三台etcd节点分别部署在了master和node节点上了 k8s集群master01:192.168.126.27    kube-apiserver kube-controller-manager kube-scheduler etcd k8s集群master02:192.168.80.21 k8s集群node01:192.168.80.11    

    2024年02月10日
    浏览(48)
  • 一个简单的ETCD GUI工具

    使用ETCD没有好用的GUI工具,随手用c#写了一个, 做得好玩的一个ETCD GUI工具,后面加上CLI 工具,类似于 redis Cli工具一样,简化在 Linux下面的操作,不知道有没有必要, git 地址如下,麻烦点个小星星。 [github地址] https://github.com/xuejiazhi/etcdii  # 下载地址 # 填入EndPoint (IP+PORT)

    2024年01月21日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包