etcd 笔记(02)— etcd 安装(apt 或 yum 安装 、二进制包安装、Docker 安装 etcd、etcd 前端工具etcdkeeper)
1. 使用 apt 或 yum 安装 etcd
命令如下:
sudo apt-get install etcd
或者
sudo yum install etcd
这样安装的缺点是:安装的 etcd
版本过低为 2.2.5,该版本使用 Go
的版本为 1.6 如下所示:
wohu@ubuntu-dev:~$ etcd
2021-04-17 09:18:52.987281 I | etcdmain: etcd Version: 2.2.5
2021-04-17 09:18:52.987309 I | etcdmain: Git SHA: Not provided (use ./build instead of go build)
2021-04-17 09:18:52.987314 I | etcdmain: Go Version: go1.6rc2
2021-04-17 09:18:52.987318 I | etcdmain: Go OS/Arch: linux/amd64
2021-04-17 09:18:52.987322 I | etcdmain: setting maximum number of CPUs to 8, total number of available CPUs is 8
2021-04-17 09:18:52.987327 W | etcdmain: no data-dir provided, using default data-dir ./default.etcd
2021-04-17 09:18:52.987477 C | etcdmain: listen tcp 127.0.0.1:2380: bind: address already in use
wohu@ubuntu-dev:~$
而我们现在通常使用的是 etcd 3.x
版本以上,所以不符合我们的要求。
对应的我们可以使用 apt
或者 yum
卸载已经安装的 etcd
,命令如下:
sudo apt-get remove etcd
2. 二进制包安装 etcd
我们安装 etcd3.4.15
版本,安装脚本如下:
ETCD_VER=v3.4.15# choose either URL
GOOGLE_URL=https://storage.googleapis.com/etcd
GITHUB_URL=https://github.com/etcd-io/etcd/releases/download
DOWNLOAD_URL=${GITHUB_URL}rm -f /tmp/etcd-${ETCD_VER}-linux-amd64.tar.gz
rm -rf /tmp/etcd-download-test && mkdir -p /tmp/etcd-download-testcurl -L ${DOWNLOAD_URL}/${ETCD_VER}/etcd-${ETCD_VER}-linux-amd64.tar.gz -o /tmp/etcd-${ETCD_VER}-linux-amd64.tar.gz
tar xzvf /tmp/etcd-${ETCD_VER}-linux-amd64.tar.gz -C /tmp/etcd-download-test --strip-components=1
rm -f /tmp/etcd-${ETCD_VER}-linux-amd64.tar.gz# install end and check etcd version
/tmp/etcd-download-test/etcd --version
/tmp/etcd-download-test/etcdctl version
安装完成后的输出结果:
etcd Version: 3.4.15
Git SHA: aa7126864
Go Version: go1.12.17
Go OS/Arch: linux/amd64
etcdctl version: 3.4.15
API version: 3.4
2.1 启动 etcd
# start a local etcd server
/tmp/etcd-download-test/etcd
启动时命令打印如下:
wohu@ubuntu-dev:~/tools$ /tmp/etcd-download-test/etcd
[WARNING] Deprecated '--logger=capnslog' flag is set; use '--logger=zap' flag instead
2021-04-17 09:47:53.260038 I | etcdmain: etcd Version: 3.4.15
2021-04-17 09:47:53.260065 I | etcdmain: Git SHA: aa7126864
2021-04-17 09:47:53.260070 I | etcdmain: Go Version: go1.12.17
2021-04-17 09:47:53.260074 I | etcdmain: Go OS/Arch: linux/amd64
2021-04-17 09:47:53.260078 I | etcdmain: setting maximum number of CPUs to 8, total number of available CPUs is 8
2021-04-17 09:47:53.260086 W | etcdmain: no data-dir provided, using default data-dir ./default.etcd
[WARNING] Deprecated '--logger=capnslog' flag is set; use '--logger=zap' flag instead
2021-04-17 09:47:53.260311 I | embed: name = default
2021-04-17 09:47:53.260318 I | embed: data dir = default.etcd
2021-04-17 09:47:53.260323 I | embed: member dir = default.etcd/member
2021-04-17 09:47:53.260327 I | embed: heartbeat = 100ms
2021-04-17 09:47:53.260333 I | embed: election = 1000ms
2021-04-17 09:47:53.260337 I | embed: snapshot count = 100000
2021-04-17 09:47:53.260349 I | embed: advertise client URLs = http://localhost:2379
2021-04-17 09:47:53.350082 I | etcdserver: starting member 8e9e05c52164694d in cluster cdf818194e3a8c32
raft2021/04/17 09:47:53 INFO: 8e9e05c52164694d switched to configuration voters=()
raft2021/04/17 09:47:53 INFO: 8e9e05c52164694d became follower at term 0
raft2021/04/17 09:47:53 INFO: newRaft 8e9e05c52164694d [peers: [], term: 0, commit: 0, applied: 0, lastindex: 0, lastterm: 0]
raft2021/04/17 09:47:53 INFO: 8e9e05c52164694d became follower at term 1
raft2021/04/17 09:47:53 INFO: 8e9e05c52164694d switched to configuration voters=(10276657743932975437)
2021-04-17 09:47:53.394166 W | auth: simple token is not cryptographically signed
2021-04-17 09:47:53.444208 I | etcdserver: starting server... [version: 3.4.15, cluster version: to_be_decided]
2021-04-17 09:47:53.444331 I | etcdserver: 8e9e05c52164694d as single-node; fast-forwarding 9 ticks (election ticks 10)
raft2021/04/17 09:47:53 INFO: 8e9e05c52164694d switched to configuration voters=(10276657743932975437)
2021-04-17 09:47:53.444616 I | etcdserver/membership: added member 8e9e05c52164694d [http://localhost:2380] to cluster cdf818194e3a8c32
2021-04-17 09:47:53.445514 I | embed: listening for peers on 127.0.0.1:2380
raft2021/04/17 09:47:53 INFO: 8e9e05c52164694d is starting a new election at term 1
raft2021/04/17 09:47:53 INFO: 8e9e05c52164694d became candidate at term 2
raft2021/04/17 09:47:53 INFO: 8e9e05c52164694d received MsgVoteResp from 8e9e05c52164694d at term 2
raft2021/04/17 09:47:53 INFO: 8e9e05c52164694d became leader at term 2
raft2021/04/17 09:47:53 INFO: raft.node: 8e9e05c52164694d elected leader 8e9e05c52164694d at term 2
2021-04-17 09:47:53.651082 I | etcdserver: setting up the initial cluster version to 3.4
2021-04-17 09:47:53.661434 N | etcdserver/membership: set the initial cluster version to 3.4
2021-04-17 09:47:53.661471 I | etcdserver/api: enabled capabilities for version 3.4
2021-04-17 09:47:53.661496 I | etcdserver: published {Name:default ClientURLs:[http://localhost:2379]} to cluster cdf818194e3a8c32
2021-04-17 09:47:53.661520 I | embed: ready to serve client requests
2021-04-17 09:47:53.662148 N | embed: serving insecure client requests on 127.0.0.1:2379, this is strongly discouraged!
2.2 读写 etcd
# write,read to etcd
wohu@ubuntu-dev:~/tools$ /tmp/etcd-download-test/etcdctl --endpoints=localhost:2379 put foo bar
OK
wohu@ubuntu-dev:~/tools$ /tmp/etcd-download-test/etcdctl --endpoints=localhost:2379 get foo
foo
bar
wohu@ubuntu-dev:~/tools$
3. Docker 安装 etcd
etcd
使用 gcr.io/etcd-development/etcd
作为主要的容器仓库, quay.io/coreos/etcd
作为备用候选的容器仓库。
安装命令:
rm -rf /tmp/etcd-data.tmp && mkdir -p /tmp/etcd-data.tmp && \docker rmi gcr.io/etcd-development/etcd:v3.4.15 || true && \docker run \-p 2379:2379 \-p 2380:2380 \--mount type=bind,source=/tmp/etcd-data.tmp,destination=/etcd-data \--name etcd-gcr-v3.4.15 \gcr.io/etcd-development/etcd:v3.4.15 \/usr/local/bin/etcd \--name s1 \--data-dir /etcd-data \--listen-client-urls http://0.0.0.0:2379 \--advertise-client-urls http://0.0.0.0:2379 \--listen-peer-urls http://0.0.0.0:2380 \--initial-advertise-peer-urls http://0.0.0.0:2380 \--initial-cluster s1=http://0.0.0.0:2380 \--initial-cluster-token tkn \--initial-cluster-state new \--log-level info \--logger zap \--log-outputs stderr
测试是否安装成功:
docker exec etcd-gcr-v3.4.15 /bin/sh -c "/usr/local/bin/etcd --version"
docker exec etcd-gcr-v3.4.15 /bin/sh -c "/usr/local/bin/etcdctl version"
docker exec etcd-gcr-v3.4.15 /bin/sh -c "/usr/local/bin/etcdctl endpoint health"
docker exec etcd-gcr-v3.4.15 /bin/sh -c "/usr/local/bin/etcdctl put foo bar"
docker exec etcd-gcr-v3.4.15 /bin/sh -c "/usr/local/bin/etcdctl get foo"
4. etcd 前端工具
强烈推荐通过 etcdkeeper 作为 etcd 的 web 前端工具,
参考:
https://github.com/etcd-io/etcd/releases/
etcd 笔记(02)— etcd 安装(apt 或 yum 安装 、二进制包安装、Docker 安装 etcd、etcd 前端工具etcdkeeper)相关推荐
- linux上安装python、igraph源码包_linux ubuntu 安装/卸载/删除python-igraph方法
如何在Ubuntu 16.10上安装python-igraph? 首先使用以下命令更新系统: sudo add-apt-repository ppa:igraph/ppa # Add the Laun ...
- linux下安装Jenkins(centos7,另附使用docker安装)
目录 1.下载安装包 2.修改配置 3.登陆Jenkins 4.安装git相关插件(用于自动化部署) 5.使用docker安装jenkins 6.docker安装jenkins常见问题: 1.下载安装 ...
- docker安装mysql远程不能访问_虚拟机中docker安装mysql远程无法访问
问题:虚拟机中docker安装mysql远程无法访问 背景: [root@localhost ~]# docker run -p 3306:3306 --name mysql01 -e MYSQL_R ...
- 利用yum下载rpm包并批量安装
一.下载rpm包 方法一:downloadonly 1.yum自动下载RPM包及其所有依赖的包至/root/rpm目录:yum install yum-plugin-downloadonly yum ...
- yum 下载RPM包而不进行安装
yum命令本身就可以用来下载一个RPM包,标准的yum命令提供了--downloadonly(只下载)的选项来达到这个目的. $ sudo yum install --downloadonly < ...
- linux yum下载RPM包后再安装LAMP环境
1.下载yum插件 yum-downloadonly,实现只下载软件包的功能. yum install yum-downloadonly 或者 yum install yum-plugin-downl ...
- Centos7使用yum下载rpm包而不执行安装
yum-downloadonly是yum的一个插件,使得yum可以从RHN或者yum的仓库只下载包而不安装. 举例,从yum源下载ricci软件包 # yum install --downloadon ...
- linux安装中文字体 yum,CentOS 7.6环境下安装中文字体库
这样的对象依赖于本地的字段.新装的linux没有安装字段库,和相应的字体. 1.fc-list查看字体库 2.yum -y install fontconfig安装 3.安装好后/usr/share目 ...
- 通过kubeadm的方式以及二进制包的方式安装k8s的对比总结---K8S_Google工作笔记0016
技术交流QQ群[JAVA,C++,Python,.NET,BigData,AI]:170933152 一般我们 都用kubeadm去安装k8s因为这种方式比较快,一般最快半个小时可搭建完毕.
最新文章
- swoole 内存Memory
- [导入]ASP.NET生成高质量缩略图通用函数(c#代码)
- 2013\Province_Java_A\2.振兴中华
- linux启动nifi指令,Nifi 组件脚本开发 - ExecuteScript 使用指南 (二)
- 【深度学习torch——error】——“xxx.pt is a zip archive(did you mean to use torch.jit.load()?)
- 字符串长度(PHP学习)
- 《BERT:Pre-training of Deep Bidirectional Transformers for Language Understanding》
- 9 10次c语言上机作业答案,第十五次上机作业带答案
- 华为首秀 AI 全栈软件平台!
- Glib2之dbus用法(五)
- codeforces776D
- 三大开源bi工具_Superset,基于web的开源BI工具,github三万star
- 基于多尺度稀疏表示的视网膜OCT图像阴影修复
- 平安保险IT员工收入揭秘
- 计算机常用工具软件实训总结报告,计算机常用工具软件实训报告
- HMTL中隐藏域(type=hidden)
- mysql 5.6 64 位安装 缺少libai.so_CentOS6.7安装部署LNMP(nginx1.8.0+php5.6.10+mysql5.6.12) 法外狂徒...
- FLutter web app 运行显示空白页
- mac终端里新建html文件,mac命令行终端怎么创建文件 mac命令行终端创建文件教程...
- SolrCloud 的搭建、使用
热门文章
- RabbitMQ 入门系列(4)— RabbitMQ 启动、停止节点和应用程序、用户管理、权限配置
- Linux下环境变量配置方法梳理(.bash_profile和.bashrc的区别)
- TVM编译机器学习到 WASM 和 WebGPU
- Docker Buildx插件
- web站点的欢迎页面
- 2021年大数据HBase(十三):HBase读取和存储数据的流程
- 2021年大数据Spark(三十七):SparkStreaming实战案例二 UpdateStateByKey
- 黑客基础知识与防护(一)
- python 保存内容到记事本里面
- Resource entery xx is already defined