Proxy

使主機埠可從 Kubernetes 的容器內訪問

  • November 10, 2020

我們已經在一組(虛擬)Linux 主機上建立了一個 Kubernetes 集群。每個主機在主機的127.0.0.1:3128. 要從此網路訪問外部 HTTP/HTTPS 資源,必須使用代理。

我們希望從集群中的容器內訪問外部網路。在給定主機上執行的容器應使用來自該主機的 HTTP(s) 代理實例。

我們如何讓這些代理服務在容器中可用?

節點的 IP 始終可通過 容器訪問,並且可以使用語法fieldRef:引用其他env:成員(注意它不是shell 語法,它是 kubernetes 插值語法)$()

spec:
 containers:
 - name: use-proxy
   env:
   - name: NODE_IP
     valueFrom:
       fieldRef:
         fieldPath: status.hostIP
   - name: HTTP_PROXY
     value: $(NODE_IP):3128
   - name: HTTPS_PROXY
     value: $(NODE_IP):3128

並且不要忘記,如果它執行 MITM 行為,您可能需要為 HTTPS 代理注入 CA

另請注意,如果它實際上綁定到節點上的 127.0.0.1,您將無法從 kubernetes 集群內部訪問它,因為這些介面不被視為“本地主機”。您需要使代理對 CNI 介面可用

引用自:https://serverfault.com/questions/1041855