全部產品
Search
文件中心

Elastic Container Instance:通過ACK Serverless叢集使用ECI

更新時間:Jul 06, 2024

ECI已經無縫整合到阿里雲Container ServiceKubernetes版,您可以通過ACK Serverless叢集或者ACK叢集,快速體驗ECI的容器運行能力。本文以ACK Serverless叢集為例,介紹如何通過阿里雲Container Service如何使用ECI。

準備工作

首次操作時,需完成服務開通和相關授權操作:

建立ACK Serverless叢集

以下步驟僅介紹建立ACK Serverless叢集時的基本配置,實際操作時,請根據業務需要設定相關參數和安裝相應組件。更多資訊,請參見建立叢集

  1. 開啟建立叢集頁面。

    1. 登入Container Service管理主控台

    2. 在左側導覽列,單擊叢集

    3. 叢集列表頁面的右上方,單擊建立叢集

  2. 在上方單擊ACK Serverless叢集頁簽,完成叢集配置,然後單擊下一步:組件配置

    需要注意的配置項說明如下,未提及的配置項請根據自身需求設定。

    配置項

    樣本

    說明

    叢集名稱

    test

    根據頁面提示填寫叢集名稱。

    地區

    華北2(北京)

    選擇叢集所屬地區。

    專用網路

    自動建立

    設定叢集所屬的專用網路。

    • 自動建立:您需要選擇可用性區域,系統會自動建立一個VPC和一個屬於該可用性區域的交換器,且會在VPC中自動建立NAT Gateway並配置SNAT規則。

    • 使用已有:選擇已有的VPC和交換器。

    配置 SNAT

    為專用網路配置SNAT

    當叢集需要公網訪問能力時,需配置SNAT。

    • 如果使用自動建立的專用網路,則會自動設定SNAT。

    • 如果使用已有專用網路,請根據需要選擇是否配置SNAT。

    Service CIDR

    172.21.0.0/20

    您需要指定Service CIDR,網段不能與VPC及VPC內已有Kubernetes叢集使用的網段重複,建立成功後不能修改。更多資訊,請參見Kubernetes叢集網路規劃

    API server 訪問

    使用EIP暴露API Server

    請根據需要設定是否使用EIP暴露API Server。API Server提供了各類資來源物件(Pod,Service等)的增刪改查及Watch等HTTP Rest介面。

    • 如果開啟,會建立一個EIP,並掛載到SLB上。此時,Kubernetes API服務(即API Server)會通過EIP的6443連接埠暴露出來,您可以在外網通過kubeconfig串連並操作叢集。

    • 如果不開啟,則不會建立EIP,您只能在VPC內部用kubeconfig串連並操作叢集。

  3. 完成組件配置,然後單擊下一步:確認配置

    請根據自身需求配置需要的組件。使用組件會產生相關費用,本文作為體驗教程,不使用任何組件。

  4. 確認配置資訊,選中服務合約,單擊建立叢集

    返回叢集列表頁面,當叢集狀態為運行中時,表示叢集建立完成。

ACK Serverless叢集中部署應用

以下步驟以Nginx為例,介紹如何在ACK Serverless叢集中建立ECI執行個體來部署應用。

  1. 叢集列表頁面,找到目標ACK Serverless叢集的名稱,進入叢集管理頁面。

  2. 建立Deployment,用於部署Nginx應用。

    1. 在左側導覽列,選擇工作負載>無狀態

    2. 單擊右上方的使用YAML建立資源

    3. 根據需要修改模板中的YAML內容,然後單擊建立

      預設選擇了Resource-basic Deployment樣本模板,該模板YAML聲明建立的Deployment包含2個Pod,每個Pod帶有app: nginx的Label,運行一個部署了Nginx應用的容器。

      說明

      樣本模板中的image: nginx:1.7.9表示從Docker Hub拉取Nginx 1.7.9版本的鏡像。如果您的叢集沒有配置公網訪問,則無法拉取該鏡像,請替換為VPC網路內的鏡像,例如image: registry-vpc.cn-beijing.aliyuncs.com/eci_open/nginx:1.14.2

      ASK樣本模板

    4. 確認Deployment建立結果。

      • 無狀態頁面可以查看Deployment資訊。

        容器組數量對應的2/2表示Deployment建立成功,包含的2個Pod已在運行中。

        通過ACK使用ECI.png

      • 無狀態頁面,單擊Deployment名稱可以查看Deployment詳細資料。

        容器組頁簽下可以看到2個Pod的狀態均為運行中。單擊Pod名稱,可以查看Pod詳細資料。

        通過ACK使用ECI1.png

      • 每個Pod對應一個ECI執行個體,在Elastic Container Instance控制台容器組頁面,您可以看到相應的ECI執行個體。

        通過ACK使用ECI2.png

  3. 建立Service,配置Nginx應用的訪問方式。

    1. 在左側導覽列,選擇網路>服務

    2. 單擊右上方的使用YAML建立資源

    3. 拷貝以下YAML,單擊建立

      以下YAML建立了一個類型為LoadBalancer的Service,對外開放80連接埠,後端為帶有app: nginx的Label的Pod(即上一步建立的Deployment中的Pod)。

      apiVersion: v1
      kind: Service
      metadata:
        name: nginx-service
      spec:
        ports:
        - port: 80
          protocol: TCP
        selector:
          app: nginx
        type: LoadBalancer
    4. 確認Service的建立結果。

      服務頁面,單擊Service名稱可以查看Service詳細資料。該Service已自動關聯上一步建立的Deployment,後端端點為該Deployment中包含的2個Pod。

      通過ACK使用ECI3.png

  4. 訪問Nginx應用。

    單擊Service外部端點對應的IP地址:連接埠,即可訪問Nginx應用。

    ASK-nginx