k8s學習筆記之etcd集群部署

一、先準備三個虛擬機:
ip:
10.10.102.60
10.10.102.61
10.10.102.62

二寞肖、hostname修改:
永久修改hostname,hostname全部修改為ip
編輯hostname內容:#vim /etc/hostname
將內容刪掉哲身,修改為ip
重啟服務器:#reboot
查看hostname是否修改:#hostname
三辩涝、建立etcd集群
安裝etcd: #yum install etcd -y

圖片1.png

如果出現以下情況:

圖片2.png

可以嘗試此處提供的兩種解決方案:
a、先自己點擊http://mirrors.cug.edu.cn/.....的那個鏈接勘天,如果可以我們本地網絡可以訪問得到怔揩,那么證明是服務器的網絡問題,可以修改dns脯丝,方法如下:

  • 命令行輸入 sudo vim /etc/resolv.conf
  • 點擊 i 進入編輯模式
  • 修改文件內容:
    nameserver 202.101.172.46 #修改成你的主DNS商膊,由于本人在杭州,所以這里用的是杭州電信的dns
    search localhost #你的域名
  • 點擊 esc 退出編輯模式
  • 輸入 :wq 后回車鍵退出
    之后執(zhí)行下:
yum makecache

搞定后重新安裝一遍etcd宠进,如果問題還是沒有解決則嘗試用b方案晕拆。

b、由提示的異巢牡牛可以看出实幕,是找不到etcd-2.3.7-2.el7.x86_64導致的阱高,解決方案如下:
先在網上下載etcd-2.3.7-2.el7.x86_64.rpm

image.png
  • 采用命令:scp /home/rice/桌面/etcd-2.3.7-2.el7.x86_64.rpm root@10.10.102.62:/tmp/etcd-2.3.7-2.el7.x86_64.rpm
    (etcd-2.3.7-2.el7.x86_64.rpm的文件地址根據實際情況修改)將文件遠程上傳到虛擬機上
  • 采用命令:rpm -i etcd-2.3.7-2.el7.x86_64.rpm (進行安裝)
  • 安裝后會出現
image.png

不過沒關系,重新安裝一次etcd即可茬缩。

安裝成功后配置etcd集群

修改etcd配置文件,我這里的環(huán)境是在/etc/etcd/etcd.conf,請根據實際情況修改吼旧。

etcd0配置示例:

#[member]
# 節(jié)點名稱
ETCD_NAME=etcd0
# # 數據存放位置
ETCD_DATA_DIR="/var/lib/etcd/etcd0"
# # 監(jiān)聽其他 Etcd 實例的地址
ETCD_LISTEN_PEER_URLS="http://0.0.0.0:2380"
# # 監(jiān)聽客戶端地址
ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379,http://0.0.0.0:4001"
# # 通知其他 Etcd 實例地址
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://10.10.102.60:2380"
# # 初始化集群內節(jié)點地址
ETCD_INITIAL_CLUSTER="etcd0=http://10.10.102.60:2380,etcd1=http://10.10.102.61:2380,etcd2=http://10.10.102.62:2380"
# # 初始化集群狀態(tài)凰锡,new 表示新建
ETCD_INITIAL_CLUSTER_STATE="new"
# # 初始化集群 token 
ETCD_INITIAL_CLUSTER_TOKEN="mritd-etcd-cluster"
# # 通知 客戶端地址 
ETCD_ADVERTISE_CLIENT_URLS="http://10.10.102.60:2379,http://10.10.102.60:4001"

etcd1配置示例:

#[member]
# 節(jié)點名稱
ETCD_NAME=etcd1
# # 數據存放位置
ETCD_DATA_DIR="/var/lib/etcd/etcd1"
# # 監(jiān)聽其他 Etcd 實例的地址
ETCD_LISTEN_PEER_URLS="http://0.0.0.0:2380"
# # 監(jiān)聽客戶端地址
ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379,http://0.0.0.0:4001"
# # 通知其他 Etcd 實例地址
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://10.10.102.61:2380"
# # 初始化集群內節(jié)點地址
ETCD_INITIAL_CLUSTER="etcd0=http://10.10.102.60:2380,etcd1=http://10.10.102.61:2380,etcd2=http://10.10.102.62:2380"
# # 初始化集群狀態(tài),new 表示新建
ETCD_INITIAL_CLUSTER_STATE="new"
# # 初始化集群 token 
ETCD_INITIAL_CLUSTER_TOKEN="mritd-etcd-cluster"
# # 通知 客戶端地址 
ETCD_ADVERTISE_CLIENT_URLS="http://10.10.102.61:2379,http://10.10.102.61:4001"

etcd2配置示例:

#[member]
# 節(jié)點名稱
ETCD_NAME=etcd2
# # 數據存放位置
ETCD_DATA_DIR="/var/lib/etcd/etcd2"
# # 監(jiān)聽其他 Etcd 實例的地址
ETCD_LISTEN_PEER_URLS="http://0.0.0.0:2380"
# # 監(jiān)聽客戶端地址
ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379,http://0.0.0.0:4001"
# # 通知其他 Etcd 實例地址
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://10.10.102.62:2380"
# # 初始化集群內節(jié)點地址
ETCD_INITIAL_CLUSTER="etcd0=http://10.10.102.60:2380,etcd1=http://10.10.102.61:2380,etcd2=http://10.10.102.62:2380"
# # 初始化集群狀態(tài)圈暗,new 表示新建
ETCD_INITIAL_CLUSTER_STATE="new"
# # 初始化集群 token 
ETCD_INITIAL_CLUSTER_TOKEN="mritd-etcd-cluster"
# # 通知 客戶端地址 
ETCD_ADVERTISE_CLIENT_URLS="http://10.10.102.62:2379,http://10.10.102.62:4001"

針對以上配置參數做些解釋:

  • ETCD_NAME :ETCD的節(jié)點名掂为,在集群中應該保持唯一,可以使用 hostname员串。

  • ETCD_DATA_DIR:ETCD的數據存儲目錄勇哗,服務運行數據保存的路徑,默認為 ${name}.etcd寸齐。

  • ETCD_SNAPSHOT_COUNTER:多少次的事務提交將觸發(fā)一次快照欲诺,指定有多少事務(transaction)被提交時,觸發(fā)截取快照保存到磁盤渺鹦。

  • ETCD_HEARTBEAT_INTERVAL:ETCD節(jié)點之間心跳傳輸的間隔扰法,單位毫秒,leader 多久發(fā)送一次心跳到 followers毅厚。默認值是 100ms塞颁。

  • ETCD_ELECTION_TIMEOUT:該節(jié)點參與選舉的最大超時時間,單位毫秒吸耿,重新投票的超時時間祠锣,如果 follow 在該時間間隔沒有收到心跳包,會觸發(fā)重新投票咽安,默認為 1000 ms伴网。

  • ETCD_LISTEN_PEER_URLS:該節(jié)點與其他節(jié)點通信時所監(jiān)聽的地址列表,多個地址使用逗號隔開板乙,其格式可以劃分為scheme://IP:PORT是偷,這里的scheme可以是http、https募逞。和同伴通信的地址蛋铆,比如 http://ip:2380 ,如果有多個放接,使用逗號分隔刺啦。需要所有節(jié)點都能夠訪問,所以不要使用 localhost纠脾。

  • ETCD_LISTEN_CLIENT_URLS:該節(jié)點與客戶端通信時監(jiān)聽的地址列表玛瘸,對外提供服務的地址:比如 http://ip:2379 ,http://127.0.0.1:2379 蜕青,客戶端會連接到這里和 etcd 交互

  • ETCD_INITIAL_ADVERTISE_PEER_URLS:該成員節(jié)點在整個集群中的通信地址列表,這個地址用來傳輸集群數據的地址糊渊。因此這個地址必須是可以連接集群中所有的成員的右核。該節(jié)點同伴監(jiān)聽地址,這個值會告訴集群中其他節(jié)點渺绒。

  • ETCD_INITIAL_CLUSTER:配置集群內部所有成員地址贺喝,其格式為:ETCD_NAME=ETCD_INITIAL_ADVERTISE_PEER_URLS,如果有多個使用逗號隔開宗兼,集群中所有節(jié)點的信息躏鱼,格式為 node1=http://ip1:2380 ,node2=http://ip2:2380 ,…。注意:這里的 node1 是節(jié)點的 --name 指定的名字殷绍;后面的 ip1:2380 是 --initial-advertise-peer-urls 指定的值

  • ETCD_ADVERTISE_CLIENT_URLS:廣播給集群中其他成員自己的客戶端地址列表

  • ETCD_INITIAL_CLUSTER_STATE:新建集群的時候染苛,這個值為new;假如已經存在的集群主到,這個值為 existing茶行。

  • ETCD_INITIAL_CLUSTER_TOKEN:初始化集群token,創(chuàng)建集群的token镰烧,這個值每個集群保持唯一拢军。這樣的話,如果你要重新創(chuàng)建集群怔鳖,即使配置和之前一樣茉唉,也會再次生成新的集群和節(jié)點 uuid;否則會導致多個集群之間的沖突结执,造成未知的錯誤度陆。

注意:所有ETCD_MY_FLAG的配置參數也可以通過命令行參數進行設置,但是命令行指定的參數優(yōu)先級更高献幔,同時存在時會覆蓋環(huán)境變量對應的值懂傀。

測試etcd集群

按上面配置好各集群節(jié)點后,分別在各節(jié)點啟動etcd蜡感。

[root@etcd2 ~]# $ systemctl start etcd

查看所有集群節(jié)點信息蹬蚁。

[root@etcd1 ~]# etcdctl member list
Error:  client: etcd cluster is unavailable or misconfigured; error #0: dial tcp 127.0.0.1:4001: getsockopt: connection refused
; error #1: dial tcp 127.0.0.1:2379: getsockopt: connection refused

error #0: dial tcp 127.0.0.1:4001: getsockopt: connection refused
error #1: dial tcp 127.0.0.1:2379: getsockopt: connection refused

如果出現以上錯誤信息,可以通過該方法解決:
在etcd配置文件中的ETCD_LISTEN_CLIENT_URLS項郑兴,加入http://127.0.0.1:2379 ,http://127.0.0.1:4001 犀斋。如:

ETCD_LISTEN_CLIENT_URLS="http://10.10.102.61:2379,http://10.10.102.61:4001,http://127.0.0.1:2379,http://127.0.0.1:4001" 

再次查詢:

[root@etcd2 ~]# etcdctl member list
ce2a822cea30bfca: name=etcd2 peerURLs=http://localhost:2380,http://localhost:7001 clientURLs=http://10.10.102.61:2379,http://10.10.102.61:4001 isLeader=true

如果查詢出現:

圖片.png

由提示可知:是集群節(jié)點的版本太低導致的,
在etcd0上:

[root@10 ~]# etcd --version
etcd Version: 3.1.9
Git SHA: 0f4a535
Go Version: go1.7.4
Go OS/Arch: linux/amd64

在etcd1和etcd2上:

[root@10 ~]# etcd --version
etcd Version: 2.3.7
Git SHA: fd17c91
Go Version: go1.6.3
Go OS/Arch: linux/amd64

解決方法是卸載了某個集群節(jié)點的etcd情连,然后安裝同樣版本號的etcd即可叽粹,在這里我將低版本的卸載掉,重新安裝高版本的。

卸載方法:

[root@10 ~]# yum remove etcd

重新安裝好后虫几,再重新像上面那樣配置 etcd.conf锤灿,后啟動etcd,查看集群狀態(tài):

[root@10 tmp]# etcdctl member list
81816861758ee8a9: name=etcd2 peerURLs=http://10.10.102.62:2380 clientURLs=http://10.10.102.62:2379,http://10.10.102.62:4001 isLeader=false
9551f10c6eb4d835: name=etcd0 peerURLs=http://10.10.102.60:2380 clientURLs=http://10.10.102.60:2379,http://10.10.102.60:4001 isLeader=false
e2f8b90ab44a9152: name=etcd1 peerURLs=http://10.10.102.61:2380 clientURLs=http://10.10.102.61:2379,http://10.10.102.61:4001 isLeader=true

證明集群部署成功辆脸。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末但校,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子啡氢,更是在濱河造成了極大的恐慌始腾,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,723評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件空执,死亡現場離奇詭異,居然都是意外死亡穗椅,警方通過查閱死者的電腦和手機辨绊,發(fā)現死者居然都...
    沈念sama閱讀 88,485評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來匹表,“玉大人门坷,你說我怎么就攤上這事∨鄱疲” “怎么了默蚌?”我有些...
    開封第一講書人閱讀 152,998評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長苇羡。 經常有香客問我绸吸,道長,這世上最難降的妖魔是什么设江? 我笑而不...
    開封第一講書人閱讀 55,323評論 1 279
  • 正文 為了忘掉前任锦茁,我火速辦了婚禮,結果婚禮上叉存,老公的妹妹穿的比我還像新娘码俩。我一直安慰自己,他們只是感情好歼捏,可當我...
    茶點故事閱讀 64,355評論 5 374
  • 文/花漫 我一把揭開白布稿存。 她就那樣靜靜地躺著,像睡著了一般瞳秽。 火紅的嫁衣襯著肌膚如雪瓣履。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,079評論 1 285
  • 那天寂诱,我揣著相機與錄音拂苹,去河邊找鬼。 笑死,一個胖子當著我的面吹牛瓢棒,可吹牛的內容都是我干的浴韭。 我是一名探鬼主播,決...
    沈念sama閱讀 38,389評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼脯宿,長吁一口氣:“原來是場噩夢啊……” “哼念颈!你這毒婦竟也來了?” 一聲冷哼從身側響起连霉,我...
    開封第一講書人閱讀 37,019評論 0 259
  • 序言:老撾萬榮一對情侶失蹤榴芳,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后跺撼,有當地人在樹林里發(fā)現了一具尸體窟感,經...
    沈念sama閱讀 43,519評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 35,971評論 2 325
  • 正文 我和宋清朗相戀三年歉井,在試婚紗的時候發(fā)現自己被綠了柿祈。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,100評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡哩至,死狀恐怖躏嚎,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情菩貌,我是刑警寧澤卢佣,帶...
    沈念sama閱讀 33,738評論 4 324
  • 正文 年R本政府宣布,位于F島的核電站箭阶,受9級特大地震影響虚茶,放射性物質發(fā)生泄漏。R本人自食惡果不足惜仇参,卻給世界環(huán)境...
    茶點故事閱讀 39,293評論 3 307
  • 文/蒙蒙 一媳危、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧冈敛,春花似錦待笑、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,289評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至癌压,卻和暖如春仰泻,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背滩届。 一陣腳步聲響...
    開封第一講書人閱讀 31,517評論 1 262
  • 我被黑心中介騙來泰國打工集侯, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 45,547評論 2 354
  • 正文 我出身青樓棠枉,卻偏偏與公主長得像浓体,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子辈讶,可洞房花燭夜當晚...
    茶點故事閱讀 42,834評論 2 345

推薦閱讀更多精彩內容

  • from http://www.infoq.com/cn/articles/etcd-interpretation...
    小樹苗苗閱讀 13,940評論 3 38
  • Kubernetes作為容器應用的管理中心命浴,通過對Pod的數量進行監(jiān)控,并且根據主機或容器失效的狀態(tài)將新的Pod調...
    輝耀輝耀閱讀 4,593評論 0 13
  • docker實現了更便捷的單機容器虛擬化的管理, docker的位置處于操作系統(tǒng)層與應用層之間; 相對傳統(tǒng)虛擬化(...
    Harvey_L閱讀 19,888評論 3 44
  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理贱除,服務發(fā)現生闲,斷路器,智...
    卡卡羅2017閱讀 134,600評論 18 139
  • 我躺在床上已經第四天了 所謂天災人禍 總有些事情和時間是你預想不到的 計劃之外的 原本打算什么時候看完法理要往后拖...
    考研狗的成長日記閱讀 68評論 0 0