一、背景介紹
????一直對(duì)--advertise-client-urls這個(gè)參數(shù)迷迷糊糊的,搞不清到底是做什么的,網(wǎng)上的一些解釋也似懂非懂的,因此,本篇文章就做一個(gè)小測(cè)試,去探尋究竟。
僅供參考!
二、測(cè)試環(huán)境介紹
| 主機(jī)名 | IP | 系統(tǒng) | 服務(wù) |
|---|---|---|---|
| master | 172.16.91.195 | centos7.5 | etcd(單例) |
| harbor | 172.16.91.222 | centos7.5 | 無 |
三、參數(shù)說明
????etcd有要求,如果--listen-client-urls被設(shè)置了,那么就必須同時(shí)設(shè)置--advertise-client-urls,所以即使設(shè)置和默認(rèn)相同,也必須顯式設(shè)置
四、測(cè)試
4.1 測(cè)試1: 將--advertise-client-urls設(shè)置成http://127.0.0.1:2379
-
更新配置文件
更新配置文件 - 重新啟動(dòng)etcd服務(wù)
systemctl daemon-reload systemctl restart etcd - 在本機(jī)上測(cè)試
etcdctl --endpoints=http://127.0.0.1:2379 --debug ls
本機(jī)測(cè)試 -
在同一個(gè)局域網(wǎng)的其他機(jī)器上測(cè)試
harbor節(jié)點(diǎn)上測(cè)試
4.2 測(cè)試2: 將--advertise-client-urls設(shè)置成http://172.16.91.195:2379
-
更新配置文件
更新配置文件 -
重新啟動(dòng)etcd服務(wù)
systemctl daemon-reload systemctl restart etcd -
在本機(jī)上測(cè)試
etcdctl --endpoints=http://127.0.0.1:2379 --debug ls
本機(jī)測(cè)試 -
在同一個(gè)局域網(wǎng)的其他機(jī)器上測(cè)試
harbor節(jié)點(diǎn)上測(cè)試
4.3 測(cè)試3: 將--advertise-client-urls設(shè)置成http://172.16.91.222:2379
-
更新配置文件
更新配置文件 - 重新啟動(dòng)etcd服務(wù)
systemctl daemon-reload systemctl restart etcd - 在本機(jī)上測(cè)試
本機(jī)測(cè)試 -
在同一個(gè)局域網(wǎng)的其他機(jī)器上測(cè)試
harbor節(jié)點(diǎn)上測(cè)試
4.4 測(cè)試4: 將--advertise-client-urls設(shè)置成http://172.16.91.222,http://127.0.0.1:2379,http://172.16.91.195:2379
-
更新配置文件
更新配置文件 - 重新啟動(dòng)etcd服務(wù)
systemctl daemon-reload systemctl restart etcd - 在本機(jī)上測(cè)試
本機(jī)測(cè)試 -
在同一個(gè)局域網(wǎng)的其他機(jī)器上測(cè)試
harbor節(jié)點(diǎn)上測(cè)試
4.5 分析
觀看上面測(cè)試中,debug輸出的信息,會(huì)發(fā)現(xiàn)etcdctl的基本工作流程
4.5.1 etcdctl的基本工作流程?
etcdctl的基本工作流程
4.6 總結(jié):
- --advertise-client-urls
- 就是客戶端(etcdctl/curl等)跟etcd服務(wù)進(jìn)行交互時(shí)請(qǐng)求的url
- --listen-client-urls
- 這個(gè)參數(shù)是etcd服務(wù)器自己監(jiān)聽時(shí)用的,也就是說,監(jiān)聽本機(jī)上的哪個(gè)網(wǎng)卡,哪個(gè)端口
- 說明etcdctl的底層邏輯,應(yīng)該是調(diào)用curl跟etcd服務(wù)進(jìn)行交換