k8s中Service暴露的种类以及用法

一、说明

在 Kubernetes 中,有几种不同的方式可以将服务(Service)暴露给外部流量。这些方式通过定义服务的 spec.type 字段来确定。
二、详解
1. ClusterIP

定义:默认类型,服务只能在集群内部访问。

作用:通过集群内部 IP 地址暴露服务。

示例:

yaml 复制代码
spec:
  type: ClusterIP
  ports:
    - port: 80
      targetPort: 8080

2.NodePort

定义:在每个节点上开放一个高端口(通常是 30000-32767),允许外部流量访问服务。

作用:通过任意节点的 IP 地址和 nodePort 访问服务。

示例:

yaml 复制代码
spec:
  type: NodePort
  ports:
    - port: 80
      targetPort: 8080
      nodePort: 30007

3. LoadBalancer

定义:云平台提供的负载均衡器会为服务分配一个外部 IP 地址。

作用:通过该 IP 地址访问服务,适合需要外部流量负载均衡的情况。

示例:

yaml 复制代码
spec:
  type: LoadBalancer
  ports:
    - port: 80
      targetPort: 8080
  selector:
    app: my-app

4. ExternalName

定义:将服务映射到一个外部域名(例如数据库服务)。

作用:通过指定的外部域名访问服务,而不是通过集群内部 IP 或节点 IP。

示例:

yaml 复制代码
spec:
  type: ExternalName
  externalName: example.com

二、总结

ClusterIP:默认的服务类型,仅在集群内部可访问。

NodePort:在每个节点上开放一个端口,允许外部流量访问服务。

LoadBalancer:云平台提供的负载均衡器分配一个外部 IP 地址,适合需要负载均衡的情况。

ExternalName:将服务映射到一个外部域名,适用于需要访问外部服务的场景。

相关推荐
张忠琳3 小时前
【client-go v0.36.1】(store Part 3)Store 超深度分析 — 集成模式、完整数据流、不变量、与 DeltaFIFO 协作
云原生·kubernetes·informer·store·client-go
赵渝强老师5 小时前
【赵渝强老师】Kubernetes(K8s)中的金丝雀升级
linux·docker·云原生·容器·kubernetes
鹤落晴春6 小时前
【K8s】配置存储卷
云原生·容器·kubernetes
张忠琳7 小时前
【client-go v0.36.1】(DeltaFIFO Part 1)DeltaFIFO 超深度分析 — 模块定位、类结构、接口层次、构造与初始化
云原生·kubernetes·deltafifo·informer·client-go
原来是猿8 小时前
Docker 【 技术架构(1)】
docker·容器·架构
阿里云云原生8 小时前
实战揭秘:如何通过 AI Agent Skill 让 K8s 应用自动接入云监控?
云原生
ba_pi8 小时前
k8s删除pod
linux·容器·kubernetes
木雷坞9 小时前
Qdrant Docker 部署教程:数据卷、API Key 和集合初始化
运维·docker·容器·知识图谱
张忠琳11 小时前
【client-go v0.36.1】tools/cache 深度分析(下篇)— RealFIFO 深度、集成架构、生命周期、设计模式总结
云原生·kubernetes·cache·informer·client-go
张忠琳11 小时前
【client-go v0.36.1】(store Part 2)Store 超深度分析 — threadSafeMap 核心、索引体系、RV追踪、事务机制
云原生·kubernetes·informer·store·client-go