当前位置:  首页>> 技术小册>> Kubernetes中文教程(二)

服务内部流量策略开启了内部流量限制,将内部流量只路由到发起方所处节点内的服务端点。
这里的”内部“流量指当前集群中的 Pod 所发起的流量。
这种机制有助于节省开销,提升效率。

使用服务内部流量策略

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

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

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

  1. apiVersion: v1
  2. kind: Service
  3. metadata:
  4. name: my-service
  5. spec:
  6. selector:
  7. app.kubernetes.io/name: MyApp
  8. ports:
  9. - protocol: TCP
  10. port: 80
  11. targetPort: 9376
  12. internalTrafficPolicy: Local

工作原理

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

  • 请阅读[拓扑感知提示]
  • 请阅读 [Service 的外部流量策略]
  • 遵循[使用 Service 连接到应用]教程

该分类下的相关小册推荐: