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) |
最佳实践
- 内部服务用 ClusterIP
- 生产环境用 Ingress + LoadBalancer
- 避免滥用 NodePort
- 使用 NetworkPolicy 限制流量
总结
理解 Service 类型是 K8s 网络的基础,选择合适的类型能简化架构、降低成本、提高安全性。
标签:KubernetesK8sService网络,云原生
为你推荐
暂无相关推荐


评论 0