簡體   English   中英

用戶空間模式在kube-proxy的代理模式中意味着什么?

[英]What does userspace mode means in kube-proxy's proxy mode?

kube-proxy有一個名為--proxy-mode的選項,根據幫助消息,這個選項可以是userspaceiptables 。(見下文)

# kube-proxy -h
Usage of kube-proxy:
...
      --proxy-mode="": Which proxy mode to use: 'userspace' (older, stable) or 'iptables' (experimental). If blank, look at the Node object on the Kubernetes API and respect the 'net.experimental.kubernetes.io/proxy-mode' annotation if provided.  Otherwise use the best-available proxy (currently userspace, but may change in future versions).  If the iptables proxy is selected, regardless of how, but the system's kernel or iptables versions are insufficient, this always falls back to the userspace proxy.
...

我無法弄清楚用戶空間模式在這里意味着什么。

任何人都可以告訴我kube-proxy在用戶空間模式下運行時的工作原理是什么?

Userspace和iptables指的是實際處理連接轉發的內容。 在這兩種情況下,都會安裝本地iptables規則來攔截具有與服務關聯的目標IP地址的出站TCP連接。

在用戶空間模式下,iptables規則轉發到go二進制(kube-proxy)正在偵聽連接的本地端口。 二進制文件(在用戶空間中運行)終止連接,建立與服務后端的新連接,然后將請求轉發給后端並將響應轉發回本地進程。 用戶空間模式的一個優點是,因為連接是從應用程序創建的,如果連接被拒絕,應用程序可以重試到不同的后端。

在iptables模式下,安裝iptables規則以直接將發往服務的數據包轉發到服務的后端。 這比將數據包從內核移動到kube-proxy然后再返回內核更有效,因此可以提高吞吐量和延遲尾部延遲。 主要缺點是調試起來比較困難,因為不是將日志寫入/var/log/kube-proxy的本地二進制文件,而是必須從內核處理iptables規則中檢查日志。

在這兩種情況下,都會在您的計算機上運行kube-proxy二進制文件。 在用戶空間模式下,它將自身作為代理插入; 在iptables模式下,它將配置iptables而不是代理連接本身。 相同的二進制文件在兩種模式下都有效,並且通過標志或在節點的apiserver中設置注釋來切換行為。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM