日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

kubernets kube-proxy原理分析

發(fā)布時間:2025/3/17 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 kubernets kube-proxy原理分析 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

kube-proxy

service是一組pod的服務抽象,相當于一組pod的LB,負責將請求分發(fā)給對應的pod。service會為這個LB提供一個IP,一般稱為cluster IP。

kube-proxy的作用主要是負責service的實現(xiàn),具體來說,就是實現(xiàn)了內部從pod到service和外部的從node port向service的訪問

cat?nginx.yaml????部署該deploment? apiVersion:?extensions/v1beta1 kind:?Deployment metadata:name:?apigw-test1 spec:replicas:?2template:metadata:labels:app:?test1spec:#hostNetwork:?truecontainers:-?name:?apigw1p_w_picpath:?apigw:696p_w_picpathPullPolicy:?IfNotPresentports:-?containerPort:?80resources:requests:cpu:?2memory:?2Gilimits:cpu:?2memory:?2Gi


創(chuàng)建service

cat?nginx-svc.yaml? apiVersion:?v1 kind:?Service metadata:name:?apigw-test1labels:app:?test1 spec:type:?NodePortselector:app:?test1ports:-?port:?6666targetPort:?80nodePort:?30066kubectl?create?-f?nginx-svc.yaml


前面創(chuàng)建了nginx的部署對象,那么別人如何使用nginx這個服務呢?首先要確定的是,這個nginx服務,是給內部使用的,還是外部。如果是內部使用,那就可以不用設置服務的類型(默認為ClusterIP),

否則,可以將服務類型設置為NodePort,通過node的端口暴露出來給外部使用;或者是LoadBalancer,由云服務商提供一個負載均衡直接掛在服務上。

這里我們使用NodePort,暴露出30066端口給外部使用。如果不指定nodePort,那么kubernetes會隨機生成一個


這里我們用1個service+2個pod來舉例說明


port和nodePort都是service的端口,前者暴露給集群內客戶訪問服務,后者暴露給集群外客戶訪問服務。從這兩個端口到來的數(shù)據(jù)都需要經(jīng)過反向代理kube-proxy流入后端pod的targetPod,從而到達pod上的容器內。



apigw-test1-2790435668-xkt56 ?ip:192.168.64.130/32

apigw-test1-2790435668-r69sr ?ip: ?192.168.83.197/32


整體流程圖如下

-A KUBE-SVC-NPX46M4PTMTKRN6Y -m comment --comment "default/kubernetes:https" -m recent --rcheck --seconds 10800 --reap --name KUBE-SEP-FOCF455PUHPZHEKG --mask 255.255.255.255 --rsource -j KUBE-SEP-FOCF455PUHPZHEKG

?

實現(xiàn)了會話保持

?

-A KUBE-SEP-FOCF455PUHPZHEKG -p tcp -m comment --comment "default/kubernetes:https" -m recent --set --name KUBE-SEP-FOCF455PUHPZHEKG --mask 255.255.255.255 --rsource -m tcp -j DNAT --to-destination 172.16.18.124:6443


關鍵點解釋:

KUBE-NODEPORTS ? 鏈跳轉到如下兩條鏈

1、KUBE-MARK-MASQ ?--set-xmark 0x4000/0x4000 ?SANT

該鏈的作用主要是做數(shù)據(jù)標記,以及后續(xù)對這些標記的數(shù)據(jù)做SNAT

2、KUBE-SVC-4FIAYNHBEFBB6ATU ?會跳轉到如下兩條鏈

2、1 ?KUBE-SEP-ZMVIR553ITG5JAPJ ?(-m statistic --mode random --probability 0.50000000000)

該鏈主要兩個做個 一個SANT ?一個DNAT,請參考上圖說明


2、2 ?KUBE-SEP-S6UNEDQPTOJETSJC ?作用等同于2、1


?服務配置了session affinity,則會產(chǎn)生如下的規(guī)則 ?



-m recent --rcheck --seconds 10800 --reap 實現(xiàn)了會話保持

來自于default/kubernetes:https這個服務,流經(jīng)KUBE-SVC-NPX46M4PTMTKRN6Y這個鏈的數(shù)據(jù)包會跳轉到自定義鏈KUBE-SEP-FOCF455PUHPZHEKG,且會在一段時間內保持session affinity,保持時間是10800

轉載于:https://blog.51cto.com/huaxin/1902725

總結

以上是生活随笔為你收集整理的kubernets kube-proxy原理分析的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。