文档中心
简体中文English
一个 Kubernetes 的服务 (Service) 是一种抽象,它定义了一类 Pod 的逻辑集合和一个用于访问它们的策略 - 有的时候被称之为微服务,而在这个集合中的 Pod 的 IP 地址以及数量等都会发生动态变化,这个服务的客户端并不需要知道这些变化,也不需要自己来记录这个集合的 Pod 信息,这一切都是由抽象层 Service 来完成。
已创建了工作负载,若还未创建工作负载可参考 工作负载 。
登录 KubeSphere 控制台,在所属的企业空间中选择已有 项目 或新建项目,访问左侧菜单栏,点击 网络与服务 → 服务 进入服务列表页。
创建服务支持三种方式, 页面创建 , 导入 yaml/json 文件 , 编辑模式 创建。若选择以编辑模式,可点击右上角编辑模式进入代码界面,支持 yaml 和 json 格式。左上角显示配置文件列表和导入导出按钮。其中导入 yaml 文件方式会自动将 yaml 文件内容填充到页面上,用户根据需要可以在页面上调整后再行创建,编辑模式可以方便习惯命令行操作的用户直接在页面上编辑 yaml 文件创建服务。以下主要介绍页面创建的方式。
在服务列表页,点击 创建 按钮,填写基本信息:
2.1. 选择需要创建服务的类型,每种服务类型适合不同的场景:
2.2. 若选择 VIP 或 Headless (selector),需填写服务设置:
会话亲和性
若选择 Headless (externalname),通过返回 CNAME 和它的值,可以将服务映射到 externalName 字段的内容。
标签设置页用于指定资源对应的一组或者多组标签 (Label)。Label 以键值对的形式附加到任何对象上,如 Pod,Service,Node 等,定义好标签后,其他对象就可以通过标签来对对象进行引用,最常见的用法便是通过节点选择器来引用对象。
为服务选择外网访问方式,LoadBalancer 的方式需要对应的负载均衡器插件来启用,如果未安装插件则无法使用。服务创建后支持修改外网访问方式。
注意:由于使用 Load Balancer 需要在安装前配置与安装与云服务商对接的 cloud-controller-manage 插件,参考 安装负载均衡器插件 来安装和使用负载均衡器插件。
创建完成后即可在服务列表中查看成功创建的服务详情。
服务创建后对外提供了不同的访问方式,可满足不同网络环境下提供不同的访问通道。
后端工作负载的服务暴露给集群内其他工作负载访问的方式,可通过服务在集群中的域名或 Virtual IP 访问。
<服务名称>.<服务所在的项目名称>.svc.cluster.local
nginx.demo-namespace.svc.cluster.local
Virtual IP:Port
curl 10.233.18.78:80
节点访问是在每个节点的 IP 上开放一个节点端口 (NodePort),通过节点端口对外暴露服务。通过请求 <节点 IP>:<NodePort> ,可以从集群的外部访问一个 NodePort 服务。
<节点 IP>:<NodePort>