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 等工具部署,自由度更高一些。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章