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:将服务映射到一个外部域名,适用于需要访问外部服务的场景。

相关推荐
KubeSphere 云原生7 小时前
云原生周刊:在 Kubernetes 上运行机器学习
云原生·容器·kubernetes
码界奇点7 小时前
通往Docker之路从单机到容器编排的架构演进全景
docker·容器·架构
阿Y加油吧7 小时前
Docker从入门到实战——含容器部署、docker基础、项目部署
运维·docker·容器
不知道累,只知道类8 小时前
记一次诡异的“偶发 404”排查:CDN 回源到 OSS 导致 REST API 失败
java·云原生
victory04319 小时前
progen2 docker镜像打包命令文档
运维·docker·容器
AKAMAI9 小时前
Akamai推出Akamai Inference Cloud (AI推理云),重新定义人工智能的应用场景与实现方式
人工智能·云原生·云计算
算是难了10 小时前
Docker基础总结
运维·docker·容器
ityangs11 小时前
GitLab 私服(基于 Docker)搭建方案
git·docker·容器·gitlab
沐雨风栉12 小时前
告别设备限制!CodeServer+cpolar让VS Code随时随地在线编程
云原生·eureka·重构·pdf·开源
技术杠精13 小时前
Docker Swarm 的负载均衡和平滑切换原理
docker·容器·负载均衡·1024程序员节