全部產品
Search
文件中心

Container Compute Service:建立ClusterIP類型服務

更新時間:Sep 17, 2025

在Kubernetes中,Pod會快速地被建立和刪除,這導致Pod的IP地址不固定,因此無法直接對外提供服務。Service提供了一個固定的IP地址,外部服務(前端)可以通過這個固定的IP地址訪問到後端Pod,而無需關心後端具體是哪些Pod以及它們的IP地址。Service的這種機制實現了前後端的解耦,從而對外提供穩定的服務。本文介紹如何通過控制台建立虛擬叢集IP(ClusterIP)類型服務。

背景資訊

Kubernetes Service定義了這樣一種抽象:一個Pod的邏輯分組,一種可以訪問它們的策略,通常稱為微服務。這一組Pod能夠被Service訪問到,通常是通過Label Selector來實現。

在Kubernetes中,Pod雖然擁有獨立的IP,但Pod會快速地建立和刪除,因此通過Pod直接對外界提供服務不符合高可用的設計準則。通過Service,Service能夠解耦frontend(前端)和backend(後端)的關聯,frontend不用關心backend的具體實現,從而實現松耦合的微服務設計。

更多詳細的原理,請參見Kubernetes service

步驟一:建立Deployment

  1. 登入容器計算服務控制台,在左側導覽列選擇叢集列表

  2. 集群列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇工作负载 > 无状态

  3. 無狀態頁面,單擊使用YAML建立資源

  4. 選擇樣本模板或自訂,然後單擊建立

    本樣本模板是一個Nginx的Deployment。

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: my-nginx-svc
      namespace: default
    spec:
      replicas: 2
      selector:
        matchLabels:
          app: nginx
      template:
        metadata:
          labels:
            app: nginx
        spec:
          containers:
          - name: nginx
            image: registry.cn-hangzhou.aliyuncs.com/acs-sample/nginxdemos:latest
            ports:
            - containerPort: 80
  5. 無狀態頁面,單擊目標應用程式名稱或右側的詳情,查看該Deployment的運行狀態,等待其所有Pod執行個體可用。

步驟二:建立服務

  1. 集群列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇網路 > 服務

  2. 服務頁面右側,單擊建立,在建立服務對話方塊中,配置相關資訊,然後單擊確定

    配置項

    說明

    樣本

    服務名稱

    設定服務的名稱。

    my-nginx-svc

    服務類型

    選擇虛擬叢集IP(Cluster IP),即ClusterIP,通過叢集的內部IP暴露服務。選擇該值後,服務只能在叢集內部訪問,此類型為預設的Service類型。

    說明

    可按需選擇是否開啟執行個體間服務發現(Headless Service)。開啟後,可使用無頭Service與其他服務發現機制進行對接,無需與Kubernetes的實現捆綁。

    虛擬叢集IP(Cluster IP)

    服務關聯

    選擇服務要綁定的後端應用。如不進行關聯,則不會建立相關的Endpoints對象。關於服務關聯的詳細介紹,請參見services-without-selectors

    • 名稱:app

    • :nginx

    連接埠映射

    添加服務連接埠(對應Service YAML檔案中的port)和容器連接埠(對應Service YAML檔案中的targetPort),容器連接埠需要與後端的Pod中暴露的容器連接埠一致。

    • 服務連接埠:80

    • 容器連接埠:80

    • 協議:TCP

    註解

    為該服務添加一個註解(Annotation)。

    標籤

    為該服務添加一個標籤,標識該服務。

    建立完成後,可在服務頁面的操作列,對目標服務進行更新YAML 編輯刪除操作。