這篇文章給大家介紹kubernetes實(shí)踐中的Etcd3集群搭建是怎樣的,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。
創(chuàng)新互聯(lián)公司是創(chuàng)新、創(chuàng)意、研發(fā)型一體的綜合型網(wǎng)站建設(shè)公司,自成立以來(lái)公司不斷探索創(chuàng)新,始終堅(jiān)持為客戶(hù)提供滿(mǎn)意周到的服務(wù),在本地打下了良好的口碑,在過(guò)去的十載時(shí)間我們累計(jì)服務(wù)了上千家以及全國(guó)政企客戶(hù),如發(fā)電機(jī)回收等企業(yè)單位,完善的項(xiàng)目管理流程,嚴(yán)格把控項(xiàng)目進(jìn)度與質(zhì)量監(jiān)控加上過(guò)硬的技術(shù)實(shí)力獲得客戶(hù)的一致贊譽(yù)。
一:Etcd簡(jiǎn)介
ETCD是用于共享配置和服務(wù)發(fā)現(xiàn)的分布式,一致性的KV存儲(chǔ)系統(tǒng)。類(lèi)似于Zookeeper.
ETCD的使用場(chǎng)景:配置管理,服務(wù)注冊(cè)于發(fā)現(xiàn),選主,應(yīng)用調(diào)度,分布式隊(duì)列,分布式鎖.
ETCD使用Raft協(xié)議來(lái)維護(hù)集群內(nèi)各個(gè)節(jié)點(diǎn)狀態(tài)的一致性。簡(jiǎn)單說(shuō),ETCD集群是一個(gè)分布式系統(tǒng),由多個(gè)節(jié)點(diǎn)相互通信構(gòu)成整體對(duì)外服務(wù),每個(gè)節(jié)點(diǎn)都存儲(chǔ)了完整的數(shù)據(jù),并且通過(guò)Raft協(xié)議保證每個(gè)節(jié)點(diǎn)維護(hù)的數(shù)據(jù)是一致的。
二:Etcd3集群背景
10.116.137.196 k8s_master
10.116.82.28 k8s_node1
10.116.36.57 k8s_node2
Etcd版本:etcd-v3.1.8-linux-amd64.tar.gz(https://github.com/coreos/etcd/releases)
三:Etcd3安裝
1.環(huán)境變量設(shè)置 vi /etc/profile
export ETCDCTL_API=3
2.關(guān)閉系統(tǒng)防火墻
systemctl disable firewalld
systemctl stop firewalld
3.安裝
tar -zxvf etcd-v3.1.8-linux-amd64.tar.gz
cp etcd /usr/bin/
cp etcdctl /usr/bin/
創(chuàng)建/etc/etcd/etcd.conf 配置文件
創(chuàng)建/usr/lib/systemd/system/etcd.service systemctl啟動(dòng)文件。
4.配置文件(藍(lán)色背景處為三個(gè)節(jié)點(diǎn)需要修改的地方)
etcd.service
點(diǎn)擊(此處)折疊或打開(kāi)
[Unit]
Description=Etcd Server
After=network.target
After=network-online.target
Wants=network-online.target
[Service]
Type=notify
WorkingDirectory=/var/lib/etcd/
EnvironmentFile=/etc/etcd/etcd.conf
ExecStart=/bin/bash -c "GOMAXPROCS=$(nproc) /usr/bin/etcd --name=\"${ETCD_NAME}\" --data-dir=\"${ETCD_DATA_DIR}\" --listen-client-urls=\"${ETCD_LISTEN_CLIENT_URLS}\" --listen-peer-urls=\"${ETCD_LISTEN_PEER_URLS}\" --advertise-client-urls=\"${ETCD_ADVERTISE_CLIENT_URLS}\" --initial-advertise-peer-urls=\"${ETCD_INITIAL_ADVERTISE_PEER_URLS}\" --initial-cluster=\"${ETCD_INITIAL_CLUSTER}\" --initial-cluster-state=\"${ETCD_INITIAL_CLUSTER_STATE}\""
Restart=on-failure
LimitNOFILE=65536
[Install]
WantedBy=multi-user.target
etcd.conf 配置文件(https://github.com/coreos/etcd/blob/master/etcd.conf.yml.sample)
點(diǎn)擊(此處)折疊或打開(kāi)
# [member]
ETCD_NAME=k8s_master
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_PEER_URLS="http://120.25.154.90:2380"
ETCD_LISTEN_CLIENT_URLS="http://120.25.154.90:2379,http://127.0.0.1:2379"
# [cluster]
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://120.25.154.90:2380"
ETCD_INITIAL_CLUSTER="k8s_master=http://120.25.154.90:2380,k8s_node1=http://120.25.220.176:2380,k8s_node2=http://112.74.105.178:2380"
ETCD_INITIAL_CLUSTER_STATE="new"
ETCD_INITIAL_CLUSTER_TOKEN="k8s-etcd-cluster"
ETCD_ADVERTISE_CLIENT_URLS="http://120.25.154.90:2379"
5.啟動(dòng) 通過(guò)systemctl start命令啟動(dòng)etcd服務(wù),同時(shí)使用systemctl enable 命令將服務(wù)加入開(kāi)機(jī)啟動(dòng)列表中
systemctl daemon-reload
systemctl enable etcd.service
systemctl start etcd.service
6.啟動(dòng)結(jié)果查詢(xún)
四:Etcd配置參數(shù)說(shuō)明(https://coreos.com/etcd/docs/latest/op-guide/configuration.html)
點(diǎn)擊(此處)折疊或打開(kāi)
Etcd的參數(shù)配置方式有兩種,一種是命令行的方式,一種是環(huán)境變量的方式。命令行方式的優(yōu)先級(jí)高于環(huán)境變量的方式。
Etcd默認(rèn)2379端口處理客戶(hù)端的請(qǐng)求;2380端口用于集群各成員間的通信。
#[member]
-name 或 ETCD_NAME:
指定當(dāng)前etcd成員的名稱(chēng) 默認(rèn)值為"default",通常用戶(hù)Hostname來(lái)命名。
-data-dir或ETCD_DATA_DIR:
etcd數(shù)據(jù)文件目錄,默認(rèn)是“${name}.etcd”
–snapshot-count或ETCD_SNAPSHOT_COUNT:
指定多少次commit操作會(huì)觸發(fā)一次磁盤(pán)快照,默認(rèn)值是10000
–heartbeat-interval或 ETCD_ELECTION_TIMEOUT:
心跳信號(hào)間隔,毫秒級(jí),默認(rèn)是100毫秒。
–listen-peer-urls或 ETCD_LISTEN_PEER_URLS
用于監(jiān)聽(tīng)集群中其他成員的發(fā)送信息的地址。默認(rèn)值是“http://localhost:2380”
–listen-client-urls或ETCD_LISTEN_CLIENT_URLS:
用于監(jiān)聽(tīng)客戶(hù)端發(fā)來(lái)的信息的地址,默認(rèn)值是“http://localhost:2379”
–max-snapshots或ETCD_MAX_SNAPSHOTS
鏡像文件的最大個(gè)數(shù),默認(rèn)是5.0表示無(wú)限制
–max-wals或ETCD_MAX_WALS:
#[cluster]
–initial-advertise-peer-urls或 ETCD_INITIAL_ADVERTISE_PEER_URLS:
集群中各節(jié)點(diǎn)相互通信的地址。
–initial-cluster或ETCD_INITIAL_CLUSTER:
初始集群由哪些成員組成 默認(rèn)值是“efault=http://localhost:2380”
–initial-cluster-state或ETCD_INITIAL_CLUSTER_STATE:
集群的初始狀態(tài),其值有“new”和“existing”,默認(rèn)為“new”
–initial-cluster-token:ETCD_INITIAL_CLUSTER_TOKEN:
集群名稱(chēng)
–advertise-client-urls或ETCD_ADVERTISE_CLIENT_URLS:
客戶(hù)端與集群通信地址
關(guān)于kubernetes實(shí)踐中的Etcd3集群搭建是怎樣的就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。