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. 登入 Container Service管理主控台
  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 的歡迎頁面。