ETCD快速入门-02 ETCD安装

打印 上一主题 下一主题

主题 705|帖子 705|积分 2115

2.ETCD安装

    etcd 安装可以通过源码构建也可以使用官方构建的二进制文件进行安装。我们以二进制文件为例,系统为CentOS 7.9,操作步骤如下所示:
2.1 Linux
  1. ETCD_VER=v3.5.4
  2. # choose either URL
  3. GOOGLE_URL=https://storage.googleapis.com/etcd
  4. GITHUB_URL=https://github.com/etcd-io/etcd/releases/download
  5. DOWNLOAD_URL=${GOOGLE_URL}
  6. rm -f /tmp/etcd-${ETCD_VER}-linux-amd64.tar.gz
  7. rm -rf /tmp/etcd-download-test && mkdir -p /tmp/etcd-download-test
  8. curl -L ${DOWNLOAD_URL}/${ETCD_VER}/etcd-${ETCD_VER}-linux-amd64.tar.gz -o /tmp/etcd-${ETCD_VER}-linux-amd64.tar.gz
  9. tar xzvf /tmp/etcd-${ETCD_VER}-linux-amd64.tar.gz -C /tmp/etcd-download-test --strip-components=1
  10. rm -f /tmp/etcd-${ETCD_VER}-linux-amd64.tar.gz
  11. /tmp/etcd-download-test/etcd --version
  12. /tmp/etcd-download-test/etcdctl version
  13. /tmp/etcd-download-test/etcdutl version
  14. # start a local etcd server
  15. /tmp/etcd-download-test/etcd
  16. # write,read to etcd
  17. /tmp/etcd-download-test/etcdctl --endpoints=localhost:2379 put foo bar
  18. /tmp/etcd-download-test/etcdctl --endpoints=localhost:2379 get foo
复制代码
2.2 Docker
  1. rm -rf /tmp/etcd-data.tmp && mkdir -p /tmp/etcd-data.tmp && \
  2.   docker rmi gcr.io/etcd-development/etcd:v3.5.4 || true && \
  3.   docker run \
  4.   -p 2379:2379 \
  5.   -p 2380:2380 \
  6.   --mount type=bind,source=/tmp/etcd-data.tmp,destination=/etcd-data \
  7.   --name etcd-gcr-v3.5.4 \
  8.   gcr.io/etcd-development/etcd:v3.5.4 \
  9.   /usr/local/bin/etcd \
  10.   --name s1 \
  11.   --data-dir /etcd-data \
  12.   --listen-client-urls http://0.0.0.0:2379 \
  13.   --advertise-client-urls http://0.0.0.0:2379 \
  14.   --listen-peer-urls http://0.0.0.0:2380 \
  15.   --initial-advertise-peer-urls http://0.0.0.0:2380 \
  16.   --initial-cluster s1=http://0.0.0.0:2380 \
  17.   --initial-cluster-token tkn \
  18.   --initial-cluster-state new \
  19.   --log-level info \
  20.   --logger zap \
  21.   --log-outputs stderr
  22. docker exec etcd-gcr-v3.5.4 /bin/sh -c "/usr/local/bin/etcd --version"
  23. docker exec etcd-gcr-v3.5.4 /bin/sh -c "/usr/local/bin/etcdctl version"
  24. docker exec etcd-gcr-v3.5.4 /bin/sh -c "/usr/local/bin/etcdctl endpoint health"
  25. docker exec etcd-gcr-v3.5.4 /bin/sh -c "/usr/local/bin/etcdctl put foo bar"
  26. docker exec etcd-gcr-v3.5.4 /bin/sh -c "/usr/local/bin/etcdctl get foo"
  27. docker exec etcd-gcr-v3.5.4 /bin/sh -c "/usr/local/bin/etcdutl version"
复制代码
以上为官方的示例文件,其网址为:https://github.com/etcd-io/etcd/releases/
    其实安装是非常简单的,下载二进制文件压缩包,解压之后,就可以直接运行了。
2.3 初始化ETCD

2.3.1 直接启动ETCD并初始化

    在安装完成后,需要启动etcd和配置初始化参数,常见的启动默认参数如下所示:
  1. ./etcd \
  2. --name=surpass \
  3. --data-dir=/opt/etcd.db  \
  4. --listen-client-urls=http://localhost:2379 \
  5. --listen-peer-urls=http://localhost:2380 \
  6. --advertise-client-urls=http://localhost:2379 \
  7. --initial-advertise-peer-urls=http://localhost:2380 \
  8. --initial-cluster=surpass=http://localhost:2380 \
  9. --initial-cluster-state=new \
  10. --initial-cluster-token=etcd-cluster \
  11. --logger=zap
复制代码
    在实际etcd服务运行环境,还需要考虑 etcd 进程的状态监控、开机服务自动启动、便捷的服务启停和其他运维要求,因此很少会自己在命令行直接运行 etcd 服务。多节点集群高可用部署时,推荐使用 systemd 系统服务、supervisor 管理服务、Kubernetes Static Pod 管理服务、Kubernetes DaemonSet 管理服务 或者 更加智能的 Kubernetes etcd-operator 等方式
2.3.2 通过systemd管理

    直接使用systemd管理的操作步骤如下所示:

  • 1、将解压后的二进制文件etcd文件移动统一规划目录
  1. \cp -f etcd /usr/local/bin
复制代码

  • 2、准备配置文件和数据目录
  1. mkdir -p /etc/etcd /home/data/etcd
复制代码

  • 3、准备启动的配置文件
  1. # vim /etc/etcd/etcd.conf
  2. ETCD_NAME="surpass"
  3. ETCD_DATA_DIR="/home/data/etcd"
  4. ETCD_LISTEN_CLIENT_URLS="http://localhost:2379"
  5. ETCD_LISTEN_PEER_URLS="http://localhost:2380"
  6. ETCD_ADVERTISE_CLIENT_URLS="http://localhost:2379"
  7. ETCD_INITIAL_ADVERTISE_PEER_URLS="http://localhost:2380"
  8. ETCD_INITIAL_CLUSTER="surpass=http://localhost:2380"
  9. ETCD_INITIAL_CLUSTER_STATE="new"
  10. ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"
  11. ETCD_LOGGER="zap"
复制代码

  • 4、准备systemd服务文件,参考文件如下所示:
  1. # vim /usr/lib/systemd/system/etcd.service
  2. [Unit]
  3. Description=ETCD Service
  4. After=network.target
  5. After=network-online.target
  6. Wants=network-online.target
  7. [Service]
  8. Type=notify
  9. EnvironmentFile=/etc/etcd/etcd.conf
  10. ExecStart=/usr/local/bin/etcd
  11. Restart=on-failure
  12. LimitNOFILE=65536
  13. [Install]
  14. WantedBy=multi-user.target
复制代码

  • 5、启动并运行服务
  1. # systemctl daemon-reload
  2. # systemctl start etcd
  3. # systemctl enable etcd
复制代码

  • 6、验证ETCD状态
  1. # etcdctl endpoint  status --cluster -w table
复制代码

原文地址:https://www.jianshu.com/p/1691493555ba
本文同步在微信订阅号上发布,如各位小伙伴们喜欢我的文章,也可以关注我的微信订阅号:woaitest,或扫描下面的二维码添加关注:


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

自由的羽毛

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表