💡
原文中文,约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 是默认模式,性能更优。
🏷️
标签
➡️