服務內部流量策略
如果叢集中的兩個 Pod 需要通訊,並且它們都執行在同一個節點上,請使用**服務內部流量策略**將網路流量保持在該節點內。避免透過叢集網路進行往返可以幫助提高可靠性、效能(網路延遲和吞吐量)或降低成本。
功能狀態:
Kubernetes v1.26 [stable]
**服務內部流量策略**支援內部流量限制,僅將內部流量路由到流量源自的節點內的端點。“內部”流量在此處指代源自當前叢集中的 Pod 的流量。這有助於降低成本並提高效能。
使用服務內部流量策略
你可以透過將 Service 的 .spec.internalTrafficPolicy
設定為 Local
來啟用其內部流量策略。這會告訴 kube-proxy 僅使用節點本地端點進行叢集內部流量路由。
注意
對於沒有特定服務端點的節點上的 Pod,即使該服務在其他節點上確實有端點,該服務也會表現得好像它(對於此節點上的 Pod 而言)有零個端點一樣。以下示例展示了將 .spec.internalTrafficPolicy
設定為 Local
時服務的樣子:
apiVersion: v1
kind: Service
metadata:
name: my-service
spec:
selector:
app.kubernetes.io/name: MyApp
ports:
- protocol: TCP
port: 80
targetPort: 9376
internalTrafficPolicy: Local
工作原理
kube-proxy 會根據 spec.internalTrafficPolicy
設定過濾其路由到的端點。當設定為 Local
時,只考慮節點本地端點。當設定為 Cluster
(預設值)或未設定時,Kubernetes 會考慮所有端點。
下一步
- 閱讀 拓撲感知路由
- 閱讀 服務外部流量策略
- 請參閱使用 Service 連線應用程式教程
上次修改時間:2023 年 8 月 20 日上午 10:58 PST:修復連結 (07f224714a)