etcd 笔记(02)— etcd 安装(apt 或 yum 安装 、二进制包安装、Docker 安装 etcd、etcd 前端工具etcdkeeper)
生活随笔
收集整理的這篇文章主要介紹了
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)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2022-2028年中国金属薄膜行业市场
- 下一篇: etcd 笔记(03)— etcd 客户