首页 > 其他分享 >docker容器之etcd

docker容器之etcd

时间:2024-04-01 18:32:48浏览次数:24  
标签:容器 v3.4 ## etcdctl etc etcd linux docker

一、etcd介绍

1、etcd是什么

  • etcd是CoreOS团队于2013年6月发起的开源项目,它的目标是构建一个高可用的分布式键值(key-value)数据库。

2、etcd特点

  • 简单的接口,通过标准的HTTP API进行调用,也可以使用官方提供的 etcdctl 操作存储的数据。
  • 有监听机制
  • 键值对存储

3、etcd是用场景

  • 服务发现
  • 消息发布于订阅
  • 负载均衡
  • 分布式通知于协调
  • 分布式锁

4、etcd关键字

  • Raft:etcd所采用的保证分布式系统强一致性的算法。
  • Node:一个Raft状态机实例。
  • Member: 一个etcd实例。它管理着一个Node,并且可以为客户端请求提供服务。
  • Cluster:由多个Member构成可以协同工作的etcd集群。
  • Peer:对同一个etcd集群中另外一个Member的称呼。
  • Client: 向etcd集群发送HTTP请求的客户端。
  • WAL:预写式日志,etcd用于持久化存储的日志格式。
  • snapshot:etcd防止WAL文件过多而设置的快照,存储etcd数据状态。
  • Proxy:etcd的一种模式,为etcd集群提供反向代理服务。
  • Leader(领导者):Raft算法中通过竞选而产生的处理所有数据提交的节点。
  • Follower(跟随者):竞选失败的节点作为Raft中的从属节点,为算法提供强一致性保证。
  • Candidate:当Follower超过一定时间接收不到Leader的心跳时转变为Candidate开始Leader竞选。
  • T-erm:某个节点成为Leader到下一次竞选开始的时间周期,称为一个Term。
  • Index:数据项编号。Raft中通过Term和Index来定位数据。

5、工作原理

在这里插入图片描述

6、获取

  • etcd项目地址:https://github.com/coreos/etcd/
  • etcd下载地址:https://github.com/etcd-io/etcd/releases 根据需要查找对应版本下载即可

二、etcd安装

1、创建并切换到下载目录

mkdir /usr/local/mytools && cd /usr/local/mytools

在这里插入图片描述

2、下载

这一步可跳过,因为下载较慢,可以直接用自己下载好的上传至linux进行第四部解压即可。

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

在这里插入图片描述

3、解压文件到当前目录

 tar xzvf etcd-v3.4.3-linux-amd64.tar.gz

4、查看

切换至etcd根目录,运行查看命令ls,里面会有一些文档和2个二进制文件etcd和etcdctl。etcd是server端,etcdctl是客户端

[root@localhost mytools]# ls
etcd-v3.4.3-linux-amd64  etcd-v3.4.3-linux-amd64.tar.gz  etcd-v3.4.3-linux-amd64.tar.gz.1
[root@localhost mytools]# cd etcd-v3.4.3-linux-amd64/
[root@localhost etcd-v3.4.3-linux-amd64]# ls
Documentation  etcd  etcdctl  README-etcdctl.md  README.md  READMEv2-etcdctl.md

在这里插入图片描述

5、复制

将etcd和etcdctl二进制文件复制到/usr/local/bin目录, 这样系统中可以直接调用etcd/etcdctl这两个程序

cp etcd etcdctl /usr/local/bin

6、查看etcd版(v2/v3)

etcd --version

7、设置etcd版本

etct3.4.3默认使用v3命令所以步骤7可省略,之前版本此步骤不可少,例如:v3.3.10
vi /etc/profile

# 最后一行指定etcdctl命令的版本为v3
export ETCDCTL_API=3

# 刷新环境变量
source /etc/profile
#查看当前etcdctl的版本信息
#v2版本命令和v3命令是不一样的,例如:
#v2查看版本号
etcdctl -version或 etcdctl -v
#v3查看版本号
etcdctl version
# 更多命令帮助可以查询
etcdctl --help  

8、启动

etcd

参数说明
1.name表示节点名称,默认为default。
2.data-dir 保存日志和快照的目录,默认为当前工作目录default.etcd/目录下。
3.在http://localhost:2380和集群中其他节点通信。
4.在http://localhost:2379提供客户端交互。
5.heartbeat为100ms,该参数的作用是leader多久发送一次心跳到followers,默认值是100ms。
6.election为1000ms,该参数的作用是重新投票的超时时间,如果follow在该时间间隔没有收到心跳包,会触发重新投票,默认为1000ms。
7.snapshot count为10000,该参数的作用是指定有多少事务被提交时,触发截取快照保存到磁盘。
8.集群和每个节点都会生成一个uuid。
9.启动的时候会运行raft,选举出leader

在这里插入图片描述

三、创建etcd服务

1、建立etcd相关目录(即数据文件和配置文件的保存位置)

/etc目录是整个Linux系统的中心,其中包含所有系统管理和维护方面的配置文件,所以etcd的配置也放在这里

mkdir -p /var/lib/etcd/ && mkdir -p /etc/etcd/

2、创建etcd配置文件

vim /etc/etcd/etcd.conf

插入:

# 节点名称
ETCD_NAME="etcd0"
# 指定数据文件存放位置
ETCD_DATA_DIR="/var/lib/etcd/"

3、创建systemd配置文件

vim /etc/systemd/system/etcd.service

插入:

[Unit]
Description=Etcd Server
After=network.target
After=network-online.target
Wants=network-online.target
## 对于那些严格要求 必须存在真实可用的网络连接的单元, 
## 应该在其单元文件中包含 Wants=network-online.target 
## 与 After=network-online.target 指令

[Service]
User=root
Type=notify
WorkingDirectory=/var/lib/etcd/
## 根据实际情况修改EnvironmentFile和ExecStart这两个参数值
## 1.EnvironmentFile即配置文件的位置,注意“-”不能少
EnvironmentFile=-/etc/etcd/etcd.conf
## 2.ExecStart即etcd启动程序位置
ExecStart=/usr/local/bin/etcd
Restart=on-failure
LimitNOFILE=65536

[Install]
WantedBy=multi-user.target

4、启动/停止/查看etcd服务

## 1.重新加载systemd服务
systemctl daemon-reload

## 2.设置开机自启动
systemctl enable etcd 

在这里插入图片描述

## 3.启动etcd
systemctl start etcd

## 4.查看etcd运行状态
systemctl status etcd

## 5.停止服务
systemctl stop etcd

## 6.重启etcd
systemctl restart etcd

四、常用操作

1、 如何获取帮助

etcdctl -h

2、put,放入值

etcdctl put /testdir/testkey "Hello world"

3、get,获取值

etcdctl get /testdir/testkey

4、del

# 清空数据
etcdctl del / --prefix

#删除所有/test前缀的节点
etcdctl del /test --prefix

5、watch

#1. 增加一个key,(客户端窗口1)
etcdctl put key1 "hello"

#2. 打开一个新的客户端窗口2,监听key1的变化
etcdctl watch key1

#3. 回到窗口1,向key1 中put新值
etcdctl put key1 "hello work"

# 4. 此时可以在窗口2中看到监听输出


# 查看版本信息
curl http://127.0.0.1:2379/version

标签:容器,v3.4,##,etcdctl,etc,etcd,linux,docker
From: https://blog.csdn.net/2302_76703990/article/details/137237741

相关文章

  • 享道出行:容器弹性技术驱动下的智慧出行稳定性实践
    作者:郑嘉扬、何杉前言享道出行是一家专注于出行服务的专业品牌,是上汽集团实现汽车产业“新四化”(即“电动化、智能网联化、共享化、国际化”)的重要组成部分。作为上汽集团移动出行战略品牌,享道出行充分利用全产业链竞争优势,从消费者对安全及品质的需求出发,通过为消费者提供安全......
  • QtQuick 学习笔记(一)容器组件
    1.QGroupBox功能提供分组框支持,可在其中布置多种窗口部件常用函数与组件voidsetChecked(boolchecked)QGroupBox使能voidsetTitle(constQString&title)标题文本设置效果及功能测试GroupBox.cpp#include<QApplication>#include<QDialog>#include......
  • 【docker】Dockerfile自定义镜像
           ......
  • docker安装rocketmq
    拉取rocketmq镜像dockerpullapache/rocketmq:4.9.4创建文件夹mkdir-p~/docker/rocketmq/data/broker/logsmkdir-p~/docker/rocketmq/data/broker/storemkdir-p~/docker/rocketmq/data/broker/confmkdir-p~/docker/rocketmq/data/namesrv/logs运行rmqnamesrvd......
  • windows版本docker修改存储目录
    dockerdesktop里面,settings=>resource=>advance 或者手动操作1使用wsl--list-v在cmd终端,查看桌面是否关闭,如果没有关闭,使用wsl--shutdown立即终止所有正在运行的发行版和WSL2轻量级实用程序虚拟机2.查看存储地址默认情况下,DockerDesktopforWindow会创建如下......
  • docker-gitlab-ce-未完
    1、拉取gitlab镜像dockerpullgitlab/gitlab-ce:latest2、创建映射文件mkdir-p/docker_server/gitlab/etcmkdir-p/docker_server/gitlab/logmkdir-p/docker_server/gitlab/dataetc映射保存配置文件,log存储日志,data存储数据文件/docker_server/gitlab/etc/gitlab.r......
  • 云容器引擎CCE弹性伸缩
    CCE弹性伸缩介绍CCE的弹性伸缩能力分为如下两个维度:工作负载弹性伸缩:即调度层弹性,主要是负责修改负载的调度容量变化。例如,HPA是典型的调度层弹性组件,通过HPA可以调整应用的副本数,调整的副本数会改变当前负载占用的调度容量,从而实现调度层的伸缩。节点弹性伸缩:即资源层弹......
  • 云容器引擎CCE弹性伸缩
    CCE弹性伸缩介绍CCE的弹性伸缩能力分为如下两个维度:工作负载弹性伸缩:即调度层弹性,主要是负责修改负载的调度容量变化。例如,HPA是典型的调度层弹性组件,通过HPA可以调整应用的副本数,调整的副本数会改变当前负载占用的调度容量,从而实现调度层的伸缩。节点弹性伸缩:即资源层弹性,主......
  • 什么是Docker引擎架构,Docker引擎架构详解及Vmware,CentOS7、Docker引擎的安装,CentOS7常
    Dockere引擎架构详解2.1Docker引擎发展历程2.1.1首发版本架构       Docker在首次发布时,其引擎有两个核心组件构成,LXC(LinuxContainer)与DockerDaemon构成。不过该架构依赖于LXC,使得Docker存在严重的问题:依赖于外部工具对Docker来说存在着巨大的生存风险。......
  • 使用docker安装ES
    1、创建网络,让es和kibana容器可以通信互联dockernetworkcreatees-net2、拉取镜像dockerpullelasticsearch:7.12.1dockerpullkibana:7.12.1这两个版本要一致3、创建目录mkdir-p/home/data/escd /home/data/esmkdir es-datamkdir es-logsmkdir es-plugins4......