kube-proxy

service是一組pod的服務(wù)抽象,相當(dāng)于一組pod的LB,負(fù)責(zé)將請(qǐng)求分發(fā)給對(duì)應(yīng)的pod。service會(huì)為這個(gè)LB提供一個(gè)IP,一般稱為cluster IP。
kube-proxy的作用主要是負(fù)責(zé)service的實(shí)現(xiàn),具體來說,就是實(shí)現(xiàn)了內(nèi)部從pod到service和外部的從node port向service的訪問。

舉個(gè)例子,現(xiàn)在有podA,podB,podC和serviceAB。serviceAB是podA,podB的服務(wù)抽象(service)。
那么kube-proxy的作用就是可以將pod(不管是podA,podB或者podC)向serviceAB的請(qǐng)求,進(jìn)行轉(zhuǎn)發(fā)到service所代表的一個(gè)具體pod(podA或者podB)上。
請(qǐng)求的分配方法一般分配是采用輪詢方法進(jìn)行分配。

另外,kubernetes還提供了一種在node節(jié)點(diǎn)上暴露一個(gè)端口,從而提供從外部訪問service的方式。

比如我們使用這樣的一個(gè)manifest來創(chuàng)建service

apiVersion: v1kind: Servicemetadata:  labels:    name: mysql    role: service  name: mysql-servicespec:  ports:    - port: 3306      targetPort: 3306      nodePort: 30964  type: NodePort  selector:    mysql-service: "true"

他的含義是在node上暴露出30964端口。當(dāng)訪問node上的30964端口時(shí),其請(qǐng)求會(huì)轉(zhuǎn)發(fā)到service對(duì)應(yīng)的cluster IP的3306端口,并進(jìn)一步轉(zhuǎn)發(fā)到pod的3306端口。

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運(yùn),軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式