kube-proxy

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

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

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

比如我們使用這樣的一個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端口。當訪問node上的30964端口時,其請求會轉發(fā)到service對應的cluster IP的3306端口,并進一步轉發(fā)到pod的3306端口。

延伸閱讀

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