K8S-使用endpoint引用外部服務

endpoint 是k8s集群中一個資源對象熙揍,存儲在etcd里面,用來記錄一個service對應的所有pod的訪問地址堪旧。service配置selector endpoint controller 才會自動創(chuàng)建對應的endpoint 對象奖亚,否則是不會生產(chǎn)endpoint 對象

k8s集群中創(chuàng)建一個名為test的service,就h會生成一個同名的endpoint 對象析砸,endpoint對象就是關聯(lián)pod的ip 地址和端口 (使用kubectl describe svc mongodb -n namespace-name, 查看當前的service 下面有一個pod 的)

一個service由一組后端的pod組成,這些后端的pod通過service endpoint暴露出來陨囊,如果有一個新的pod創(chuàng)建創(chuàng)建出來夹攒,且podd的標簽名稱(label:pod)跟service里面的標簽(label selector 的label)一致會自動加入到service的endpoints 里面,如果pod對象終止后压语,pod 會自動從edponts 中移除编检。在集群中任意節(jié)點 可以使用curl請求service <CLUSTER-IP>:<PORT>

endpoints: 實際上servce服務后端的pod端點集合

service 不僅可以代理pod 還可以代理任意其它的后端比如運行在k8s集群外部的服務 比如mysql mongodb (如果需要從k8s里面鏈接外部服務(mysql)需要定義同名的service和endpoint)

在實際生成環(huán)境中,像mysql mongodb這種IO密集行應用允懂,性能問題會顯得非常突出,所以在實際應用中粥航,一般不會把這種有狀態(tài)的應用(mysql 等)放入k8s里面生百,而是使用單獨的服務來部署躁锡,而像web這種無狀態(tài)的應用更適合放在k8s里面 里面k8s的自動伸縮,和負載均衡置侍,故障自動恢復 等強大功能

如果在應用程序中直接使用存儲應用的ip 地址映之,考慮如果后期的ip變化了,我們要手動修改應用的配置蜡坊,如果是一倆個服務還好杠输,如果是多服務的話 我們就要一個一個去替換,萬一哪個服務沒有改到 那就秕衙。蠢甲。。据忘。鹦牛!

當然使用configmap也可以解決我說的上述問題,只需要將端點存儲在Configmap里面勇吊,并將其作為環(huán)境變量用于代碼中讀取,但是如果端點發(fā)生變化汉规,我們可能要重新所有的應用的容器

我們需要能夠在k8s里面像使用同一個命名空間下面的服務那種直接使用service name 名稱c,我們可以使用k8s的靜態(tài)服務來解決礼殊,如果后期需要將有狀態(tài)服務添加到k8s里面驹吮,則代碼不需要任何修改。

此時 我們可以使用service 和endpont k8s里面的資源

開始擼碼(以mogodb為例)代碼可以直接拷貝使用

  • 創(chuàng)建service (mongodb-service-exten)
kind: Service
apiVersion: v1
metadata:
  name: mongodb
  namespace: name
spec:
  ports:
  - port: 30017
    name: mongodb
    targetPort: 30017
  • 創(chuàng)建 endpoint(mongodb-endpoint)
kind: Endpoints
apiVersion: v1
metadata: 
  name: mongodb
  namespace: tms-test
subsets:
- addresses:
  - ip: xxx.xxx.xx.xxx
  ports:
   - port: 30017
     name: mongod

service 和endpoint的名稱相同晶伦, 且在一個命名空間下面

有一個注意點碟狞,菜鳥的我 爬了好久,一定要注意service.spec.ports[0] 添加一個跟service 的名稱一樣(但是不是必須的婚陪,保持一樣當然是最好的)
使用kubectl apply -f ./xxx.yaml 分別分別服務

分布成功后 使用 kubectl describe svc mongodb -n name-space-name 查詢svc的信息

image

可以看到service跟endpoint成功掛載一起了族沃,表面外面服務成功掛載到k8s里面了,在應用中配置鏈接的地方使用mongodb://mongodb:30017 鏈接數(shù)據(jù)

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末泌参,一起剝皮案震驚了整個濱河市竭业,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌及舍,老刑警劉巖未辆,帶你破解...
    沈念sama閱讀 218,204評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異锯玛,居然都是意外死亡咐柜,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評論 3 395
  • 文/潘曉璐 我一進店門攘残,熙熙樓的掌柜王于貴愁眉苦臉地迎上來拙友,“玉大人,你說我怎么就攤上這事歼郭∫牌酰” “怎么了?”我有些...
    開封第一講書人閱讀 164,548評論 0 354
  • 文/不壞的土叔 我叫張陵病曾,是天一觀的道長牍蜂。 經(jīng)常有香客問我,道長泰涂,這世上最難降的妖魔是什么鲫竞? 我笑而不...
    開封第一講書人閱讀 58,657評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮逼蒙,結(jié)果婚禮上从绘,老公的妹妹穿的比我還像新娘。我一直安慰自己是牢,他們只是感情好僵井,可當我...
    茶點故事閱讀 67,689評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著驳棱,像睡著了一般批什。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上蹈胡,一...
    開封第一講書人閱讀 51,554評論 1 305
  • 那天渊季,我揣著相機與錄音,去河邊找鬼罚渐。 笑死却汉,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的荷并。 我是一名探鬼主播合砂,決...
    沈念sama閱讀 40,302評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼源织!你這毒婦竟也來了翩伪?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,216評論 0 276
  • 序言:老撾萬榮一對情侶失蹤谈息,失蹤者是張志新(化名)和其女友劉穎缘屹,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體侠仇,經(jīng)...
    沈念sama閱讀 45,661評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡轻姿,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,851評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了逻炊。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片互亮。...
    茶點故事閱讀 39,977評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖余素,靈堂內(nèi)的尸體忽然破棺而出豹休,到底是詐尸還是另有隱情,我是刑警寧澤桨吊,帶...
    沈念sama閱讀 35,697評論 5 347
  • 正文 年R本政府宣布威根,位于F島的核電站,受9級特大地震影響视乐,放射性物質(zhì)發(fā)生泄漏医窿。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,306評論 3 330
  • 文/蒙蒙 一炊林、第九天 我趴在偏房一處隱蔽的房頂上張望姥卢。 院中可真熱鬧,春花似錦渣聚、人聲如沸独榴。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,898評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽棺榔。三九已至,卻和暖如春隘道,著一層夾襖步出監(jiān)牢的瞬間症歇,已是汗流浹背郎笆。 一陣腳步聲響...
    開封第一講書人閱讀 33,019評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留忘晤,地道東北人宛蚓。 一個月前我還...
    沈念sama閱讀 48,138評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像设塔,于是被迫代替她去往敵國和親凄吏。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,927評論 2 355