ClusterIP是Kubernetes默认服务类型,为服务分配集群内虚拟IP,仅限内部访问,提供稳定地址和负载均衡,适用于前端调用后端、数据库连接及微服务间通信等场景。

Kubernetes 中的 ClusterIP 服务类型是默认的服务暴露方式,它会为服务分配一个集群内部的虚拟 IP 地址,只能在集群内部访问。这个 IP 不对外暴露,适合用于内部组件之间的通信。
ClusterIP 的核心特点
ClusterIP 主要用于控制 Pod 之间的网络调用,确保应用各层(如前端与后端)可以在集群内安全、稳定地交互。
- 仅限内部访问:服务只能被集群内的节点、Pod 或其他服务访问,外部无法直接连接。
- 虚拟 IP 地址:Kubernetes 控制平面为服务分配一个稳定的虚拟 IP,即使后端 Pod 重启或变更,该 IP 保持不变。
- 负载均衡:发往 ClusterIP 的请求会被自动转发到后端健康的 Pod 上,实现简单的轮询负载均衡。
使用场景举例
假设你有一个前端 Web 应用需要访问后端 API 服务,而你不希望 API 被公网访问,这时就可以使用 ClusterIP。
- 数据库服务(如 MySQL、Redis)通常配置为 ClusterIP,只允许应用 Pod 连接。
- 微服务架构中,服务间调用(如订单服务调用用户服务)通过 ClusterIP 实现解耦和发现。
如何定义 ClusterIP 服务
在 YAML 文件中声明服务时,将 type 设置为 ClusterIP(也可省略,因它是默认值):
apiVersion: v1
kind: Service
metadata:
name: my-backend-service
spec:
type: ClusterIP
selector:
app: backend
ports:
- protocol: TCP
port: 80
targetPort: 9000
上述配置会创建一个名为 my-backend-service 的服务,其 ClusterIP 可供集群内其他 Pod 使用服务名或 IP 访问。
基本上就这些。ClusterIP 是 Kubernetes 网络模型中最基础也最常用的服务类型,理解它有助于构建安全、可维护的容器化应用架构。










