日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

kubernets kube-proxy原理分析

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

kube-proxy

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

kube-proxy的作用主要是負責service的實現,具體來說,就是實現了內部從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


創建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


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

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

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


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


port和nodePort都是service的端口,前者暴露給集群內客戶訪問服務,后者暴露給集群外客戶訪問服務。從這兩個端口到來的數據都需要經過反向代理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

?

實現了會話保持

?

-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

該鏈的作用主要是做數據標記,以及后續對這些標記的數據做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,則會產生如下的規則 ?



-m recent --rcheck --seconds 10800 --reap 實現了會話保持

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

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

總結

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

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