服务

    有了 Kubernetes,您无需修改应用程序来使用不熟悉的服务发现机制。Kubernetes 为容器组提供 IP 地址,为一组容器组提供一个单一 DNS 名称,并且可以在容器组之间进行负载均衡。

    有关更多信息,请参见 Kubernetes 官方文档

    • Headless:集群不为服务生成 IP 地址,在集群内通过服务的后端容器组 IP 直接访问服务。此访问类型适用于后端异构服务,例如需要区分 master 和 agent 的服务。

    提示

    在 KubeSphere 中,创建有状态服务和无状态服务时会默认生成一个虚拟 IP。如果您想创建 Headless 服务,请使用 YAML 直接进行配置。

    您需要创建一个企业空间、一个项目和一个用户 (),务必邀请该用户到项目中并赋予 operator 角色。有关更多信息,请参见。

    KubeSphere 提供三种创建服务的基本方法:无状态服务有状态服务外部服务。另外,您还可以通过自定义服务下面的指定工作负载编辑 YAML 来自定义服务。

    • 无状态服务

      无状态服务是容器服务中最常用的服务类型。无状态服务定义容器组模板来控制容器组状态,包括滚动更新和回滚。您创建无状态服务时会同时创建部署工作负载。有关无状态服务的更多信息,请参见部署

    • 有状态服务

      有状态服务用于管理有状态应用程序,确保有序且优雅的部署和扩缩,还提供稳定的持久化存储以及网络标识符。您创建有状态服务时会同时创建有状态副本集工作负载。有关有状态服务的更多信息,请参见。

    • 外部服务

      与无状态服务和有状态服务不同,外部服务将一个服务映射到一个 DNS 名称,而不是映射到选择器。您需要在外部服务地址字段中指定这些服务,该字段显示在 YAML 文件中的 externalName

    • 指定工作负载

    • 编辑 YAML

      使用 YAML 直接创建服务。您可以将 YAML 配置文件上传至控制台,也可以从控制台下载 YAML 配置文件。

      提示

      关键字 annotations:kubesphere.io/serviceType 的值可以定义为 、statefulserviceexternalserviceNone

    1. 在项目页面转到应用负载下的服务,点击创建

    2. 点击无状态服务

      备注

      创建有状态服务的步骤和创建无状态服务的步骤基本相同。本示例仅使用创建无状态服务的过程来进行演示。

    步骤 2:输入基本信息

    1. 在弹出的对话框中,您可以看到字段版本已经预先填写了 。您需要输入服务的名称,例如 demo-service。完成后,点击下一步继续。

      • 名称:服务和部署的名称,也是唯一标识符。
      • 别名:服务的别名,使资源更容易识别。
      • 版本:只能包含小写字母和数字,最长 16 个字符。

      提示

      名称的值用于两个配置中,一个是部署,另一个是服务。您可以启用右上角的编辑 YAML查看部署的清单文件以及服务的清单文件。下方是一个示例文件,供您参考。

    步骤 3:设置容器组

    为服务添加容器镜像,详情请参见设置容器组

    提示

    有关仪表板上各项属性的详细说明,请直接参见。

    要为服务挂载存储卷,详情请参见挂载存储卷

    步骤 5:配置高级设置

    • 外部访问

      您可以通过两种方法向外暴露服务,即 NodePort 和 LoadBalancer。

      • NodePort:在每个节点的 IP 地址上通过静态端口暴露服务。

      备注

      该值由 .spec.type 字段指定。如果您选择 LoadBalancer,则需要同时为它添加注解。

    • 会话保持

      您可能想把从单个客户端会话发送的所有流量都路由到跨多个副本运行的应用的同一实例。这种做法降低了延迟,因此能更好地利用缓存。负载均衡的这种行为称为“会话保持 (Sticky Session)”。

      您可以在该字段设置最大会话保持时间,由清单文件中的 .spec.sessionAffinityConfig.clientIP.timeoutSeconds 指定,默认为 10800。

    详情页面

    1. 创建服务后,您可以点击右侧的 进一步编辑它,例如元数据(名称无法编辑)、配置文件、端口以及外部访问。

      • 编辑:查看和编辑基本信息。
      • 编辑 YAML:查看、上传、下载或者更新 YAML 文件。
      • 编辑服务:查看访问类型并设置选择器和端口。
      • 编辑外部访问:编辑服务的外部访问方法。
      • 删除:当您删除服务时,会在弹出的对话框中显示关联资源。如果您勾选这些关联资源,则会与服务一同删除。
    2. 点击服务名称可以转到它的详情页面。

      • 点击更多操作展开下拉菜单,菜单内容与服务列表中的下拉菜单相同。
      • 容器组列表提供容器组的详细信息(运行状态、节点、容器组IP 以及资源使用情况)。
      • 您可以点击容器组条目查看容器信息。
      • 点击容器日志图标查看容器的输出日志。
      • 您可以点击容器组名称来查看容器组详情页面。
    1. 点击资源状态选项卡以查看服务端口、工作负载和容器组信息。

    元数据

    点击元数据选项卡以查看服务的标签和注解。

    事件

    点击事件选项卡以查看服务的事件。