www.cnblogs.com/ruiyqinrui

开源、架构、Linux C/C++/python AI BI 运维开发自动化运维。 春风桃李花 秋雨梧桐叶。“力尽不知热 但惜夏日长”。夏不惜,秋不获。@ruiY--秦瑞

python爬虫,C编程,嵌入式开发.hadoop大数据,桉树,onenebula云计算架构.linux运维及驱动开发.

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

‌Kubernetes (k8s) 中的 Service 类型主要有以下四种‌:‌12

  1. ClusterIP‌:这是默认的 Service 类型,Kubernetes 系统会自动分配一个虚拟 IP 地址,只能在集群内部访问。ClusterIP 适用于集群内部的服务访问,如微服务之间的调用。它为 Pod 提供了一个稳定的网络端点和负载均衡机制,确保应用程序的高可用性和可扩展性。

  2. NodePort‌:这种类型的 Service 会在每个节点上绑定一个端口,外部客户端可以通过节点的 IP 地址和 NodePort 访问该 Service。NodePort 适用于需要从集群外部访问服务的场景,如开发和测试环境。它通过在每个节点上分配一个固定端口来实现外部访问。

  3. LoadBalancer‌:这种类型的 Service 在 NodePort 的基础上,通过云服务商创建一个外部负载均衡器,将外部流量导入该负载均衡器,然后再转发到 Service 所指向的 Pods。LoadBalancer 适用于需要外部负载均衡支持的场景,通常用于生产环境。

  4. ExternalName‌:这种类型的 Service 将 Kubernetes 内部的 Service 映射到一个外部服务的 DNS 名称,允许将集群内部的服务指向一个外部服务。ExternalName 适用于将集群外部服务引入集群内部的场景,不需要创建任何代理或负载均衡器。

‌Service 的工作机制‌:Service 通过选择器(label selector)将一组 Pod 资源进行分组,并为它们分配一个统一的访问入口。kube-proxy 负责在每个 Node 上设置 iptables 或 IPVS 规则,将访问该虚拟 IP 的流量转发到对应的 Pod 上,实现负载均衡。

‌使用场景‌:

  • ‌ClusterIP‌:适用于集群内部的服务访问,如数据库服务或内部 API。
  • ‌NodePort‌:适用于需要从集群外部访问服务的场景,如开发和测试环境。
  • ‌LoadBalancer‌:适用于需要外部负载均衡支持的场景,通常用于生产环境。
  • ‌ExternalName‌:适用于将集群外部服务引入集群内部的场景,不需要在集群内部暴露额外端口。
posted on 2025-01-21 11:02  秦瑞It行程实录  阅读(12)  评论(0编辑  收藏  举报
www.cnblogs.com/ruiyqinrui