wutz/blog

K8S Network Service 笔记

wutz opened this issue · 0 comments

wutz commented

👷 施工中...

Service

简单理解为一种负载均衡器,提供以下功能:

  • 通过 Label 把一组 Pod 作为一个 Service 来接收和处理进入的流量
  • 每组 Pod 可以暴露给内部或外部使用者

提供以下层级:

  • Headless: 通过 DNS 实现,查询 DNS 获得所有 Pod IP。通常用于 StatefulSet 负载 (Database 等),其自己处理连接
  • ClusterIP: 分配一个唯一 VIP (不能 Ping),在每个节点设置 DNAT 其负责在 Client 端转换 VIP 到 Pod ID
  • NodePort:构建在 ClusterIP 之上在 root network namespace 中分配一个唯一的静态 port. 当流量从任意 node 到达此静态 port 时它会转发流量到一个健康的 Pod 上
  • LoadBalancer: 使用外部的用户流量到达集群中。每个 LoadBalancer Service 都会分配一个可路由的 IP 通过 BGP 或者 ARP 通告底层物理网络上。通常云上提供外部 L4 负载均衡器,或者私有集群使用 MetalLB

参考