Kubernetes教程

Kubernetes内部流量策略

一、简介

Kubernetes服务内部流量策略已开启内部流量限制,这意味着只有发起方所在节点内的服务端点才能接收到内部流量。这里的“内部”流量指的是当前集群中 Pod 所发起的流量。这种机制有助于降低开销并提高资源利用率。

二、使用服务内部流量策略

可以通过将 Service 的 .spec.internalTrafficPolicy 项设置为 Local,来为它指定一个内部专用的流量策略。此设置相当于告诉 kube-proxy 对于集群内部流量只能使用节点本地的服务端口。

注意:如果某个节点上的 Pod 都不提供指定 Service 的服务端点,即使该 Service 在其他节点上有可用的服务端点,那么在该节点上访问该 Service 的行为看起来也像是它只有 0 个服务端点(只针对此节点上的 Pod)。

以下示例展示了把 Service 的 .spec.internalTrafficPolicy 项设为 Local 时, Service 的样子:

apiVersion: v1
kind: Service
metadata:
name: my-service
spec:
selector:
app.kubernetes.io/name: MyApp
ports:
- protocol: TCP
port: 80
targetPort: 9376
internalTrafficPolicy: Local

三、工作原理

Kubernetes服务内部流量策略的工作原理基于节点本地的网络连接和负载均衡机制。当集群中的两个 Pod 想要通信,并且这两个 Pod 都在同一节点上运行时,服务内部流量策略将会把网络流量限制在该节点内。

具体来说,如果某服务的请求来自于集群内部的某个 Pod,那么根据该服务内部的流量策略,请求只会被路由到发起请求的 Pod 所在节点内的服务端点。这种“内部”流量指的是当前集群中 Pod 所发起的流量。

kube-proxy 基于 Service 的 .spec.internalTrafficPolicy 设置来过滤路由的目标服务端点。当它的值设为 Local 时,只会选择节点本地的服务端点。而当它的值设为 Cluster 或缺省时,Kubernetes 会选择所有的服务端点。

广告合作
QQ群号:707632017

温馨提示:

1、本网站发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。邮箱:2942802716#qq.com。(#改为@)

2、本站原创内容未经允许不得转裁,转载请注明出处“站长百科”和原文地址。

目录