本文介紹如何使用ACK One分布式工作流程叢集構建容器鏡像CI。
前提條件
-
已建立工作流程叢集,從ACK One控制台擷取分布式工作流程Argo執行個體的KubeConfig,並通過kubectl串連至工作流程叢集。具體操作,請參見通過kubectl工具串連叢集。
使用限制
暫不支援通過修改代碼來自動觸發CI流程。
ACK One分布式工作流程叢集功能優勢
構建容器鏡像CI
本文在ACK One分布式工作流程叢集基礎上,使用BuildKit實現容器鏡像的構建和推送,本實踐使用的鏡像為docker hub https://hub.docker.com/r/moby/buildkit的moby/buildkit:v0.12.1-rootless。
步驟一:在工作流程叢集中建立Secret儲存ACR EE密碼
-
為ACR企業版執行個體(ACR EE)配置訪問憑證。具體操作,請參見配置訪問憑證。
-
執行以下命令,在工作流程叢集中建立Secret儲存ACR EE密碼,供BuildKit使用。
替換以下代碼中的
${workflow_kubeconfig}、$username:$password為您的實際配置資訊。# repositoryDomain: 例如demo-test-registry.cn-hangzhou.cr.aliyuncs.com kubectl --kubeconfig ${workflow_kubeconfig} create secret generic docker-config --from-literal="config.json={\"auths\": {\"$repositoryDomain\": {\"auth\": \"$(echo -n $username:$password|base64)\"}}}"
步驟二:在工作流程叢集中建立WorkflowTemplate
WorkflowTemplate主要用於定義Git Clone代碼、構建和推送鏡像。
-
Clone代碼:本文採用Public倉庫,如果是私人倉庫,可以使用token來拉取,如
git clone https://[username]:[token]@gitlab.com/demo3624733/echo-server.git。 -
構建和推送鏡像:本檔使用BuildKit來構建鏡像。
本文通過不使用共用儲存和使用NAS共用儲存兩種方式介紹如何建立WorkflowTemplate。
不使用共用儲存
通過此方式可以快速構建CI流水線,無需關注共用儲存的使用。此處使用initContainer用於將代碼Clone到emptyDir,之後進入相應的臨時目錄構建鏡像。
-
使用以下YAML內容,建立worktemplate-1.yaml檔案。
您可以在以下WorkflowTemplate的parameters欄位中指定代碼倉庫、分支及鏡像等,並將您的username和Token替換到以下YAML檔案中。
-
執行以下命令,在工作流程叢集中建立WorkflowTemplate。
kubectl --kubeconfig ${ackone_argo_kubeconfig} apply -f worktemplate-1.yaml
使用NAS共用儲存
此情境中,Git Clone和構建鏡像是兩個單獨的Pod,所以需要共用儲存。關於如何在工作流程叢集使用NAS儲存卷的操作,請參見使用儲存卷。
-
使用以下YAML內容,建立worktemplate-2.yaml檔案。
您可以在以下WorkflowTemplate的parameters欄位中指定代碼倉庫、分支及鏡像等,並將您的username和Token替換到以下YAML檔案中。
-
執行以下命令,在工作流程叢集中建立WorkflowTemplate。
kubectl --kubeconfig ${ackone_argo_kubeconfig} apply -f worktemplate-2.yaml
步驟三:建立WorkFlow
-
使用以下YAML內容,建立workflow.yaml檔案。
apiVersion: argoproj.io/v1alpha1 kind: Workflow metadata: annotations: workflows.argoproj.io/pod-name-format: v1 generateName: echo-server- spec: workflowTemplateRef: name: echo-server -
執行以下命令,在工作流程叢集中建立WorkFlow。
kubectl --kubeconfig ${ackone_argo_kubeconfig} create -f workflow.yaml
步驟四:通過ACK One控制台查看工作流程
公網訪問服務開通後,您可以通過ACK One控制台更快捷地訪問Agro控制台。
-
登入ACK One控制台,在左側導覽列選擇工作流程叢集。
-
在基礎資訊頁簽下,找到常用操作地區,單擊工作流程控制台(Argo)。
-
在工作流程控制台頁面左側,選擇NAMESPACE為default,查看工作流程列表。