ECI已經無縫整合到阿里雲Container ServiceKubernetes版,您可以通過ACK Serverless叢集或者ACK叢集,快速體驗ECI的容器運行能力。本文以ACK Serverless叢集為例,介紹如何通過阿里雲Container Service如何使用ECI。
準備工作
首次操作時,需完成服務開通和相關授權操作:
開通Container ServiceKubernetes版,並授權預設角色和開通相關雲產品。具體操作,請參見首次使用Container ServiceKubernetes版。
登入Elastic Container Instance控制台,根據提示開通ECI服務。
建立ACK Serverless叢集
以下步驟僅介紹建立ACK Serverless叢集時的基本配置,實際操作時,請根據業務需要設定相關參數和安裝相應組件。更多資訊,請參見建立叢集。
開啟建立叢集頁面。
在左側導覽列,單擊叢集。
在叢集列表頁面的右上方,單擊建立叢集。
在上方單擊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串連並操作叢集。
完成組件配置,然後單擊下一步:確認配置。
請根據自身需求配置需要的組件。使用組件會產生相關費用,本文作為體驗教程,不使用任何組件。
確認配置資訊,選中服務合約,單擊建立叢集。
返回叢集列表頁面,當叢集狀態為運行中時,表示叢集建立完成。
在ACK Serverless叢集中部署應用
以下步驟以Nginx為例,介紹如何在ACK Serverless叢集中建立ECI執行個體來部署應用。
在叢集列表頁面,找到目標ACK Serverless叢集的名稱,進入叢集管理頁面。
建立Deployment,用於部署Nginx應用。
在左側導覽列,選擇工作負載>無狀態。
單擊右上方的使用YAML建立資源。
根據需要修改模板中的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
。確認Deployment建立結果。
在無狀態頁面可以查看Deployment資訊。
容器組數量對應的
2/2
表示Deployment建立成功,包含的2個Pod已在運行中。在無狀態頁面,單擊Deployment名稱可以查看Deployment詳細資料。
在容器組頁簽下可以看到2個Pod的狀態均為運行中。單擊Pod名稱,可以查看Pod詳細資料。
每個Pod對應一個ECI執行個體,在Elastic Container Instance控制台的容器組頁面,您可以看到相應的ECI執行個體。
建立Service,配置Nginx應用的訪問方式。
在左側導覽列,選擇網路>服務。
單擊右上方的使用YAML建立資源。
拷貝以下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
確認Service的建立結果。
在服務頁面,單擊Service名稱可以查看Service詳細資料。該Service已自動關聯上一步建立的Deployment,後端端點為該Deployment中包含的2個Pod。
訪問Nginx應用。
單擊Service外部端點對應的
IP地址:連接埠
,即可訪問Nginx應用。