etcdadm使用简介

在搭建k8s集群的时候,我们经常使用kubeadm,这个工具能帮助我们非常方便的快速搭建一个高可用的,线上可用的k8s集群。出于一些原因,我们经常需要etcd集群独立于k8s集群之外,有什么办法能想kubeadm一样快速搭建一个etcd集群呢?今天我们就来介绍一下etcdadm

使用etcdadm非常简单。下载最新版到需要安装etcd的主机上即可。

常用命令

新建一个集群: 
etcdadm init
常用参数:
--certs-dir: 指定etcd证书存放路径,默认为/etc/etcd/pki
--install-dir: 指定etcd命令存放路径,默认为/opt/bin/
--name: 设置节点名称,对应ETCD_NAME
--release-url: 指定下载地址,默认为https://github.com/coreos/etcd/releases/download 此地址会与version参数拼接成下载地址,格式为 https://github.com/coreos/etcd/releases/download/v{version}/etcd-v{version}-linux-amd64.tar.gz
--server-cert-extra-sans: 用于额外指定dns地址,默认包括127.0.0.1,本机地址,ETCD_NAME
--snapshot: 用快照数据初始化一个集群
--version: 指定启动etcd的版本,默认为3.3.8

向现有集群添加一个节点: 
将一个节点加入到集群内。一个新节点加入集群前,必须手动将其他节点的ca证书复制到certs-dir下。
etcdadm join  https://first-etcd-node-ip:2379
参数和上面的一致。

移除一个节点: 
将一个节点从集群中删掉,并会自动清理相关文件
etcdadm reset

问题

etcd很方便,很好用,但是也有一些问题:

  1. 截止到2020-06的v0.1.3版本,etcdadm还不支持etcd v3.4之后到版本。因为etcd v3.4之后,etcd的默认API版本由v2变更为v3, v3 版本的etcdctl 查看version 和v2版本 不一样,导致etcdadm版本验证报错。相关issue
  2. 目前不支持配置额外的etcd 参数,要想增加参数,需要手动修改并维护所有主机上的etcd.env 文件。
  3. 和kubeadm一样,ca证书有效期为10年,其他证书有效期为1年,而且目前还不支持renew证书。
  4. 只支持使用root用户部署

总结

综上所述,我认为etcdadm 还只是非常适合在测试或者要求不高的场景下使用。真的需要在生产环境上部署高可用的etcd集群的话,还是推荐使用saltstack或者ansible 等工具部署,自由度更高一些。

猜你喜欢

转载自blog.51cto.com/14601432/2562819
今日推荐