CICD聯動阿里雲容器服務Kubernetes實踐之CodePipeline篇
本文件以構建一個 Java 軟體專案並部署到 阿里雲容器服務的Kubernetes叢集 為例說明如何使用 CodePipeline。
CodePipeline服務介紹及開通
阿里雲CodePipeline是一款提供持續整合/持續交付能力,並完全相容Jenkins的能力和使用習慣的SAAS化產品。
它的優點在於:
(1)CodePipeline提供構建資源,無需使用者運維,開箱即用;
(2)與阿里雲產品生態無縫整合;
(3)相容開源Jenkins使用習慣、輕量;
(4)免費;
更多關於CodePipeline的內容請參考 ofollow,noindex" target="_blank">CodePipeline產品幫助文件
使用說明
使用CodePipeline之前,您需要先開通產品:
- 登入CodePipeline控制檯 並開通服務
- 同意RAM的CodePipeline角色授權。
構建java-demo專案並部署到Kubernetes
1. 點選 “新建” 並 “輸入專案名稱”, 選擇 “構建一個自由風格的專案”, 最後點選 “下一步”進入到專案配置頁面
2. 配置 “基本資訊” 區域, 選擇構建節點,本示例中選擇 “國內java構建環境(快取)”
3. 配置 “原始碼管理” 區域, 分別配置原始碼倉庫url以及分支資訊,本示例使用原始碼專案為:
https://code.aliyun.com/CodePipeline/k8s-java-demo.git
4. 配置java-demo專案原始碼編譯命令
在 “構建” 區域 點選 “增加構建步驟” 選擇 “執行Shell指令碼” 並配置命令:
mvn package -B -DskipTests
5. 注入一個環境變數 IMAGE_TAG
(1)再增加一個 “執行Shell指令碼” 步驟並配置命令:
TIME=`date +%Y%m%d%H%M%S` echo IMAGE_TAG=$TIME >> env.properties
(2)增加 “注入環境變數” 步驟並填寫變數檔案路徑

6. 配置docker映象構建並推送至私有映象倉庫
在 “構建” 區域 增加構建步驟 “映象構建和釋出”,填寫相關資訊,例如我要把新構建的映象推送至我的私有映象倉庫資訊如下:

則CodePipeline專案中 “映象構建和釋出” 對應的引數項則為:

7. 配置部署Kubernetes
在 “構建” 區域 增加構建步驟 “部署Kubernetes(新)”,填寫相關資訊。
-
選擇 認證方式
CodePipeline目前支援 證書認證,使用者名稱密碼認證 和 Token認證 三種認證方式。如果是 阿里雲容器服務Kubernetes叢集,預設都是 證書認證。
-
填寫 API伺服器地址
請輸入Kubernetes API 伺服器地址,您可以在阿里雲容器服務控制檯檢視Kubernetes叢集 API Server 公網連線端點,例如, https://1.12.123.134:6443 。
-
新增 證書
本示例使用 證書認證 方式。
在叢集 基本資訊 頁面,找到 配置叢集憑據 中提供的 KubeConfig 。

新增 Docker授權 型別證書:

把 client-key-data 的內容(冒號後面的字串)填入 客戶端Key 對話方塊。
把 client-certificate-data 的內容(冒號後面的字串)填入 客戶端證書 對話方塊。
-
新增 部署配置檔案
輸入yaml格式的Kubernetes部署配置檔案。如果檔案在當前專案的workspace下,請直接輸入檔名,如果在專案workspace的子目錄中,請輸入 ..子目錄/檔名。不支援位於當前專案的workspace之外的檔案。
-
新增 狀態檢查配置
支援檢驗的 Kubernetes Kind: pods,daemonsets,deployments,replicasets,replicationcontrollers,statefulsets。如果檢驗的不是 default namespace 下的資源,請在首行填寫 namespace 名稱。請用 “:” 分隔 Kubernetes Kind 和 Kind name, 用 “,” 分隔多個 Kind name。每一行描述一種 Kubernetes Kind。
注意:請嚴格按照說明填寫單詞,不要刪減字母;請勿填寫多餘的空格或者換行。

-
新增 變數申明配置
上文的部署配置檔案deployment.yaml中使用變數,請以 ${IMAGE_TAG} 格式嚴格填寫,其他格式外掛將忽略。
整個部署Kubernetes應用的配置如下:

8. 點選 提交 進行儲存
整個專案的完整配置如下:





9. 點選 立即構建 並檢視構建日誌
10. 在Kubernetes叢集控制檯檢視服務並訪問
瞭解更多CodePipeline內容,請訪問 https://www.aliyun.com/product/codepipeline ;
瞭解更多阿里雲容器服務內容,請訪問 https://www.aliyun.com/product/containerservice