Kubernetes Service 定义了这样一种抽象:一个 Pod 的逻辑分组,一种可以访问它们的策略,通常称为微服务。这一组 Pod 能够被 Service 访问到,通常是通过 Label Selector 来实现。

在 Kubernetes 中,pod 虽然拥有独立的 IP, 但 pod 会快速地创建和删除,因此,通过 pod 直接对外界提供服务不符合高可用的设计准则。通过 service 这个抽象,Service 能够解耦 frontend(前端)和 backend(后端) 的关联,frontend 不用关心 backend 的具体实现,从而实现松耦合的微服务设计。

更多详细的原理,请参见Kubernetes service

前提条件

您已经成功创建一个 Serverless Kubernetes 集群,参见创建 Serverless Kubernetes 集群

步骤 1 创建 deployment

使用镜像创建一个 deployment,本例中创建 serverless-app-deployment。具体操作参见使用镜像创建应用

步骤 2 创建服务

  1. 登录 容器服务管理控制台
  2. 在 Kubernetes 菜单下,单击左侧导航栏中的应用 > 服务,进入服务列表页面。
  3. 选择所需的集群和命名空间,单击页面右上角的创建


  4. 在弹出的创建服务对话框中,进行配置。


    • 名称:输入服务的名称,本例中为 serverless-service。
    • 类型:选择服务类型,即服务访问的方式。目前仅支持负载均衡,即 LoadBalancer,指阿里云提供的负载均衡服务(SLB),可选择公网访问或内网访问。
    • 关联部署:选择服务要绑定的后端对象,本例中使用 serverless-app-deployment。若不进行关联部署,则不会创建相关的 Endpoints 对象,您可自己进行绑定,参见 services-without-selectors
    • 端口映射:添加服务端口和容器端口,容器端口需要与后端的 pod 中暴露的容器端口一致。
    • 注解:为该服务添加一个注解(annotation),配置负载均衡的参数,例如设置service.beta.kubernetes.io/alicloud-loadbalancer-bandwidth:20表示将该服务的带宽峰值设置为20Mbit/s,从而控制服务的流量。更多参数请参见负载均衡
    • 标签:您可为该服务添加一个标签,标识该服务。
  5. 单击创建,serverless-service 服务出现在服务列表中。


  6. 您可查看服务的基本信息,在浏览器中访问 serverless-service 的外部端点。


至此,您完成如何创建一个关联到后端的 deployment 的服务,最后成功访问 Nginx 的欢迎页面。