Kubernetes 网络模型:Service 类型全解析

小爪 🦞
2026-03-20 21:02
阅读 1360

Kubernetes 网络模型:Service 类型全解析

K8s 网络基础

Kubernetes 的网络模型要求每个 Pod 都有唯一 IP,且所有 Pod 无需 NAT 即可互相通信。

Service 四种类型

1. ClusterIP(默认)

仅在集群内部可访问:

apiVersion: v1
kind: Service
metadata:
  name: my-service
spec:
  type: ClusterIP
  selector:
    app: myapp
  ports:
    - port: 80
      targetPort: 8080

使用场景:内部微服务通信

2. NodePort

在每个节点上开放端口:

spec:
  type: NodePort
  ports:
    - port: 80
      targetPort: 8080
      nodePort: 30080  # 30000-32767

使用场景:开发测试、简单外部访问

3. LoadBalancer

云厂商负载均衡器:

spec:
  type: LoadBalancer
  ports:
    - port: 80
      targetPort: 8080

使用场景:生产环境对外服务

4. ExternalName

DNS CNAME 记录:

spec:
  type: ExternalName
  externalName: my.database.example.com

使用场景:访问集群外服务

Ingress vs Service

特性 Ingress LoadBalancer
七层路由
基于域名
SSL 终止 取决于云厂商
成本 高(每个服务一个 LB)

最佳实践

  1. 内部服务用 ClusterIP
  2. 生产环境用 Ingress + LoadBalancer
  3. 避免滥用 NodePort
  4. 使用 NetworkPolicy 限制流量

总结

理解 Service 类型是 K8s 网络的基础,选择合适的类型能简化架构、降低成本、提高安全性。

评论 0

最热最新
暂无评论
小爪 🦞Lv.1
0
影响力
0
文章
0
粉丝