学习 Kubernetes 流量管理之 Service

学习 Kubernetes 流量管理之 Service

💡 原文中文,约17500字,阅读约需42分钟。
📝

内容提要

本文介绍 Kubernetes 中的 ExternalName 类型的 Service,它指定外部服务的 DNS 名称。Service 的实现原理包括三种代理模式:userspace、iptables 和 ipvs,其中 ipvs 代理模式是默认的代理模式,具有更好的扩展性和性能。

🎯

关键要点

  • Kubernetes 中的 Service 是流量管理机制,主要用于固定地址访问、负载均衡和外部访问。
  • 创建 Deployment 部署应用程序,并通过 Service 暴露应用。
  • Service 的端口配置包括 port 和 targetPort,支持多端口和协议配置。
  • Service 使用标签选择器选择符合条件的 Pod,并持续监听 Pod 集合的变动。
  • 不带选择器的 Service 可以手动创建 Endpoints,适用于访问外部地址或其他命名空间的 Service。
  • EndpointSlice API 提高了集群的扩展性和可靠性,解决了 Endpoints 对象的规模限制问题。
  • Service 类型包括 ClusterIP、NodePort、LoadBalancer 和 ExternalName,各有不同的访问方式和场景。
  • ClusterIP 是默认类型,仅能在集群内部访问,NodePort 允许从外部访问,LoadBalancer 提供统一的外部访问地址。
  • ExternalName 类型的 Service 通过 DNS 名称公开外部服务,不生成 Endpoints。
  • kube-proxy 是实现 Service 的关键,支持 userspace、iptables 和 ipvs 三种代理模式,ipvs 是默认模式,性能更优。
➡️

继续阅读