kebernetes集羣——部署ETCD集羣

kebernetes集羣——部署ETCD集羣

環境:
兩臺虛擬機:
k8s-master:192.168.3.138
k8s-node1:192.168.3.178

操作系統:redhat-7.3_x86_64
ETCD:3.3.8-linux-amd64

一、下載ETCD至服務器
1、從ETCD官網下載二進制包,本例使用的包爲etcd-v3.3.8-linux-amd64.tar.gz
下載地址:https://github.com/coreos/etcd/releases/
2、將二進制包解壓至/usr/local/。
目錄結構如下圖。注:datadir及etcd.conf爲後續步驟添加
這裏寫圖片描述

二、配置ETCD及systemd
1、創建/usr/local/etcd-v3.3.8-linux-amd64/etcd.conf文件,內容如下:

# [member config]
# etcd節點名稱
ETCD_NAME="k8s-master"
# etcd節點的數據存儲目錄
ETCD_DATA_DIR="/usr/local/etcd-v3.3.8-linux-amd64/datadir"
# 用於與其他節點通訊的地址
ETCD_LISTEN_PEER_URLS="http://0.0.0.0:2380"
# 對外提供服務的地址。如果配置了這個值,必須同時設置ETCD_ADVERTISE_CLIENT_URLS,否則無法啓動ETCD
ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379"

# [cluster config]
# 對外公告的該節點的服務地址,這個值會告訴集羣中的其他節點
ETCD_ADVERTISE_CLIENT_URLS="http://192.168.3.138:2379"
# 對外公告的供其他節點通訊用的地址
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.3.138:2380"
# 集羣初始成員列表
ETCD_INITIAL_CLUSTER="k8s-master=http://192.168.3.138:2380,k8s-node1=http://192.168.3.178:2380"
# 集羣初始狀態
ETCD_INITIAL_CLUSTER_STATE="new"
# 集羣名稱
ETCD_INITIAL_CLUSTER_TOKEN="k8s-etcd-cluster"

2、創建並編輯/usr/lib/systemd/system/etcd.service文件,服務器k8s-node1上的文件內容如下:

[Unit]
Description=Etcd Server
Documentation=https://github.com/coreos/etcd
After=network-online.target
Wants=network-online.target

[Service]
Type=notify
WorkingDirectory=/usr/local/etcd-v3.3.8-linux-amd64
EnvironmentFile=/usr/local/etcd-v3.3.8-linux-amd64/etcd.conf
ExecStart=/bin/bash -c "GOMAXPROCS=$(nproc) /usr/local/etcd-v3.3.8-linux-amd64/etcd"
Restart=on-failure
RestartSec=10s

[Install]
WantedBy=multi-user.target

說明:此文件的作用及配置項的含義,請百度“centos7 systemd”相關知識。
3、將ETCD設置爲開機啓動

systemctl enable etcd.service

三、啓動ETCD
依次在兩臺服務器上啓動ETCD。

systemctl start etcd.service

注意:啓動第一臺服務的ETCD時,因爲第二臺服務器的ETCD沒有啓動,因此第一個啓動ETCD的節點會一直卡着直到超時,需要在第一個啓動的節點超時前啓動第二個節點。

四、查看ETCD各節點狀態

/usr/local/etcd-v3.3.8-linux-amd64/etcdctl member list

結果如圖:
這裏寫圖片描述

/usr/local/etcd-v3.3.8-linux-amd64/etcdctl cluster-health

結果如圖:
這裏寫圖片描述

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