功能概述

服务是将运行在一组 Pods 上的应用程序公开为网络服务的抽象方法。每一个服务后面都由若干对应的容器提供支持。借助服务,应用可以方便的实现服务发现与负载均衡,并实现应用的零宕机升级。

Kubernetes 允许用户创建服务时,指定所需的服务类型。类型的取值及行为如下表说明。

服务类型 说明

ClusterIP

通过集群的内部 IP 暴露服务,即服务只能够在集群内部访问。这也是默认的服务类型。当您的服务只需要在集群内部被访问时,请使用该类型。

NodePort

  • 在每个节点的 IP 上开放一个静态端口,通过静态端口对外暴露服务。

  • NodePort 服务会路由到自动创建的 ClusterIP 服务。通过请求 <节点 IP>:<节点端口>,你可以从集群的外部访问一个 NodePort 服务。

注意

从安全上考虑,使用该类型会直接暴露集群节点,容易受到攻击,企业云平台不推荐在生产环境中直接通过集群节点对外甚至公网提供服务。

LoadBalancer

  • 使用负载均衡器向外部暴露服务,一般为需要暴露到公网的服务。

  • 负载均衡器可以将流量路由到自动创建的 NodePort 服务和 ClusterIP 服务上。

External Name

通过返回 CNAME 和对应值,可以将服务映射到 externalName 字段的内容,例如 foo.bar.example.com,而无需创建任何类型代理。

说明

需要使用 kube-dns 1.7 及以上版本或者 CoreDNS 0.0.8 及以上版本才能使用 ExternalName 类型。

Headless

不需要 ClusterIP 服务,可以在创建服务的时候指定参数 spec.clusterIP=None。Headless 服务包括以下两种类型。

  • 不指定 Selectors,但设置 externalName,通过 CNAME 记录处理。

  • 指定 Selectors,通过 DNS A 记录设置后端 Endpoints 列表。

操作步骤

查看服务信息

  1. 通过 Web 浏览器登录企业云平台的 Console。

  2. 在顶部菜单栏中选择产品与服务 > 容器服务 > 容器引擎 QKE,默认进入容器引擎 QKE 快速入门页面。

  3. 点击左侧导航栏的集群管理,进入集群列表页面。

  4. 点击目标集群名称,默认进入集群概览页面后,点击左侧导航栏的资源管理 > 服务,进入服务管理页面。

    service_page
  5. 如上图所示,页面展示了服务的名称、所属命名空间、类型及访问 IP 等信息。用户可在服务类型列进行条件过滤,分别查看不同类型的服务。也可在搜索栏输入名称或命名空间查找符合条件的服务。

添加负载均衡器

  1. 延续前文步骤,进入服务列表页面。

  2. 点击目标服务所在行末尾的 + 选择负载均衡器,弹出负载均衡器选择对话框。

  3. 用户根据需求,选择负载均衡器后,选择监听协议及端口,若选择 HTTPS 协议,还需添加服务器证书。

    说明
    • 不能选择由系统自动创建的负载均衡器,只能选择与当前 QKE 集群所处同一私有网络内的负载均衡器。

    • 负载均衡器目前支持监听的协议有 TCPHTTPHTTPS

  4. 配置完成后,点击确定