[Kubernetes]CentOS7下Etcd叢集搭建
阿新 • • 發佈:2018-12-19
Etcd簡要介紹 |
Etcd是Kubernetes叢集中的一個十分重要的元件,用於儲存叢集所有的網路配置和物件的狀態資訊
Etcd構建自身高可用叢集主要有三種形式:
①靜態發現: 預先已知 Etcd 叢集中有哪些節點,在啟動時直接指定好Etcd的各個node節點地址
②Etcd動態發現:通過已有的Etcd叢集作為資料互動點,然後在擴充套件新的叢集時實現通過已有叢集進行服務發現的機制
③DNS動態發現:通過DNS查詢方式獲取其他節點地址資訊
這篇文章主要介紹第一種方式.後期如果還有時間和精力研究的話,我再來寫另外兩種,但是目前先介紹第一種方式
開始前準備 |
三臺機器,用於部署k8s的執行環境:
節點 | ip |
---|---|
Master | 192.168.22.237 |
Node1 | 192.168.22.235 |
Node2 | 192.168.22.236 |
首先,將以上資訊新增到三臺主機的hosts檔案中,編輯/etc/hosts檔案,寫入下面資訊:
192.168.22.237 master 192.168.22.235 node1 192.168.22.236 node2
安裝配置Etcd |
使用yum安裝
yum install etcd -y
使用yum安裝的etcd預設配置檔案會在/etc/etcd/etcd.conf下,安裝完之後,我們需要對etcd的配置檔案做一些修改
下面是配置檔案的內容:
#[Member] #ETCD_CORS="" #資料存放位置 ETCD_DATA_DIR="/var/lib/etcd/default.etcd" #ETCD_WAL_DIR="" #監聽其他Etcd例項的地址 ETCD_LISTEN_PEER_URLS="http://localhost:2380" #監聽客戶端地址 ETCD_LISTEN_CLIENT_URLS="http://localhost:2379" #ETCD_MAX_SNAPSHOTS="5" #ETCD_MAX_WALS="5" #節點名稱 ETCD_NAME="default" #ETCD_SNAPSHOT_COUNT="100000" #ETCD_HEARTBEAT_INTERVAL="100" #ETCD_ELECTION_TIMEOUT="1000" #ETCD_QUOTA_BACKEND_BYTES="0" #ETCD_MAX_REQUEST_BYTES="1572864" #ETCD_GRPC_KEEPALIVE_MIN_TIME="5s" #ETCD_GRPC_KEEPALIVE_INTERVAL="2h0m0s" #ETCD_GRPC_KEEPALIVE_TIMEOUT="20s" # #[Clustering] #通知其他Etcd例項地址 ETCD_INITIAL_ADVERTISE_PEER_URLS="http://localhost:2380" #通知客戶端地址 ETCD_ADVERTISE_CLIENT_URLS="http://localhost:2379" #ETCD_DISCOVERY="" #ETCD_DISCOVERY_FALLBACK="proxy" #ETCD_DISCOVERY_PROXY="" #ETCD_DISCOVERY_SRV="" #初始化叢集內節點地址 #ETCD_INITIAL_CLUSTER="default=http://localhost:2380" #初始化叢集token #ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster" #初始化叢集狀態,new表示新建 #ETCD_INITIAL_CLUSTER_STATE="new" #ETCD_STRICT_RECONFIG_CHECK="true" #ETCD_ENABLE_V2="true" # #[Proxy] #ETCD_PROXY="off" #ETCD_PROXY_FAILURE_WAIT="5000" #ETCD_PROXY_REFRESH_INTERVAL="30000" #ETCD_PROXY_DIAL_TIMEOUT="1000" #ETCD_PROXY_WRITE_TIMEOUT="5000" #ETCD_PROXY_READ_TIMEOUT="0" # #[Security] #ETCD_CERT_FILE="" #ETCD_KEY_FILE="" #ETCD_CLIENT_CERT_AUTH="false" #ETCD_TRUSTED_CA_FILE="" #ETCD_AUTO_TLS="false" #ETCD_PEER_CERT_FILE="" #ETCD_PEER_KEY_FILE="" #ETCD_PEER_CLIENT_CERT_AUTH="false" #ETCD_PEER_TRUSTED_CA_FILE="" #ETCD_PEER_AUTO_TLS="false" # #[Logging] #ETCD_DEBUG="false" #ETCD_LOG_PACKAGE_LEVELS="" #ETCD_LOG_OUTPUT="default" # #[Unsafe] #ETCD_FORCE_NEW_CLUSTER="false" # #[Version] #ETCD_VERSION="false" #ETCD_AUTO_COMPACTION_RETENTION="0" # #[Profiling] #ETCD_ENABLE_PPROF="false" #ETCD_METRICS="basic" # #[Auth] #ETCD_AUTH_TOKEN="simple"
看著有些頭大對吧?其實在實際操作過程中,我們只需要改動幾個地方就OK了.在此以192.168.22.237 master為例進行配置,具體根據自己的實際情況來配置
ETCD_LISTEN_PEER_URLS="http://192.168.22.237:2380" ->本機ip是多少就寫多少
ETCD_LISTEN_CLIENT_URLS="http://192.168.22.237:2379,http://127.0.0.1:2379" ->本機ip是多少就寫多少,同時加上http://127.0.0.1:2379
ETCD_NAME="master" ->自己設定的,在hosts檔案裡面有,根據配置即可
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.22.237:2380" ->本機ip是多少就寫多少
ETCD_ADVERTISE_CLIENT_URLS="http://192.168.22.237:2379" ->本機ip是多少就寫多少
ETCD_INITIAL_CLUSTER="master=http://192.168.22.237:2380,node1=http://192.168.22.235:2380,node2=http://192.168.22.236:2380" ->自己設定的,在hosts檔案裡面有,根據配置即可
將三臺伺服器配置好之後,再分別啟動etcd
啟動服務:systemctl start etcd.service
檢視狀態:systemctl status etcd.service
如圖,可以看到,etcd服務已經起來了
接下來我們可以通過命令檢視etcd叢集的狀態
etcdctl cluster-health
可以看到,etcd叢集狀態是正常的
到此,關於CentOS7下Etcd叢集搭建,便是結束了,感謝您的閱讀~