K8S-Service

概念:

Kubernetes 中 Service 是 将运行在一个或一组 Pod 上的网络应用程序公开为网络服务的方法。

服务类型:

可通过sepc.type属性设置服务类型
ClusterIP

通过集群的内部 IP 暴露服务,选择该值时服务只能够在集群内部访问。 这也是你没有为服务显式指定 type 时使用的默认值。 你可以使用 Ingress 或者 Gateway API 向公众暴露服务。
NodePort

通过每个节点上的 IP 和静态端口(NodePort)暴露服务。 为了让节点端口可用,Kubernetes 设置了集群 IP 地址,这等同于你请求 type: ClusterIP 的服务。
LoadBalancer

使用云提供商的负载均衡器向外部暴露服务。 Kubernetes 不直接提供负载均衡组件;你必须提供一个,或者将你的 Kubernetes 集群与云提供商集成。
ExternalName

将服务映射到 externalName 字段的内容(例如,映射到主名 api.foo.bar.example)。 该映射将集群的 DNS 服务器配置为返回具有该外部主机名值的 CNAME 记录。 无需创建任何类型代理。

Service和Endpoint 的区别

当创建service资源配置了selector时,endpoints 控制器会自动创建 endpoints 资源对象,该资源对象记录了 svc 和 pod 的一一对应关系。

demo

复制代码
apiVersion: v1
kind: Service
metadata:
   #指定service名称
   name: my-nginx-service
   #给service打上标签
   labels:
      app: nginx-svc 
#指定名称空间
   namespace: test
spec:
   selector:
#指定服务类型,ClusterIP,NodePort,LoadBalancer,ExternalName (默认为ClusterIP,集群内部ip,仅集群内部访问)
   type: ClusterIP
#通过标签选择pod   
      app: nginx
      version: 1.17.1
   ports:
      - name: http
#协议类型支持TCP,UDP
        protocol: TCP
        #暴露的端口
        port: 8888
        #pod端口
        targetPort: 80
      - name: https
        protocol: TCP
        port: 4431
        targetPort: 443  

相关命令

复制代码
 #查看test名称空间下service
 kubectl get svc -n [NameSpace]
 #查看service的详细信息
 kubectl describe svc [serviceName]
相关推荐
阿里云云原生12 小时前
让复杂任务由团队完成:阿里云 AgentCore 多 Agent 协作架构及实践
云原生
YYYing.12 小时前
【K8s系列 (一) 】Docker与容器(上篇)
docker·云原生·容器·kubernetes
csdn_aspnet13 小时前
使用 Docker 和 RedisInsight 设置 Redis 以进行本地开发
redis·docker·容器·redisinsight
阿里云云原生14 小时前
阿里云可观测 2026 年 10 月产品动态
云原生
阿里云云原生14 小时前
用 Nacos 3.3.0 ARD 让 Agent 按任务发现工具和 Skill
云原生
分布式存储与RustFS17 小时前
给 RustFS 桶加一层内存缓存:用 Alluxio 让热数据少跑一遍网络
运维·云原生·开源·对象存储·分布式存储·s3·性能基准
csdn_aspnet18 小时前
如何在本地 Docker 容器中运行 Redis,并使用 Redis Insight 和 Redis CLI 进行管理
redis·docker·容器
weirong18 小时前
给 Operator 加 Admission Webhook 踩的 4 个坑(其中 3 个本可以不踩)
kubernetes
Goboy20 小时前
夯爆了,我被一个一句话接入的免费可观测平台策反了,那一刻我决定放弃用了3年的Prometheus
后端·docker·kubernetes
吴声子夜歌20 小时前
Kubernetes权威指南——深入掌握Service(一)
云原生·容器·kubernetes