1. 程式人生 > >[Kubernetes]CentOS7下Etcd叢集搭建

[Kubernetes]CentOS7下Etcd叢集搭建

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叢集搭建,便是結束了,感謝您的閱讀~