本文主要介紹云效 AppStack 應用 Kubernetes 部署編排操作方法。
選擇部署方式
云效 AppStack 應用編排支持 Kubernetes 部署(適用于云原生部署場景)、支持主機部署(適用于傳統主機部署場景)、也支持 Kubernetes 和主機混合部署場景(適用于應用由傳統主機部署向云原生轉型場景)。進入
,選擇 Kubernetes 部署 方式。創建 Kubernetes 部署編排
在 應用編排模板 )或者云效示例模板。 一個應用通常包含 Kubernetes 的工作負載、網絡、配置、存儲等資源類型。
處,點擊 從模板開始 ,選擇企業自定義應用編排模板(詳見全局設置點擊 確定 后,所選模板實例化為當前應用的編排內容(模板僅用于初始化,修改模板不會影響已有應用),進入編排編輯頁面。
在應用編排編輯頁面,可以對編排內容再次修改。
可以修改 編排組件 名稱或描述
可以修改組件 YAML 具體內容
可以添加/刪除組件
可以修改 鏡像,可以修改 占位符
使用占位符和變量
云效 AppStack 應用編排支持使用占位符 {{ }}
和變量實現一套編排多環境差異化部署,實現變量部署時動態注入。
制品占位符
支持定義制品占位符{{ .AppStack.image.xxx}}
{{ .AppStack.artifact.xxx }}
,在部署單時動態輸入鏡像/制品包,或者在流水線部署階段執行時自動注入上游構建階段產出的制品。
自定義占位符
以添加一個 port 自定義占位符實現多環境在不同端口啟動服務場景為例:
修改YAML內容,在 YAML 編輯區域敲擊
{{ .Values.port }}
,定義占位符。點擊 提取占位符。
在占位符列表將出現新增的 port 占位符。
在開發環境、測試環境變量組里分別添加 port 變量,取值分別為 8080、8081。
在占位符列表,將 port 占位符取值來源為變量,變量選擇 port。
點擊 保存,編排校驗通過后,即完成了一套 K8s 編排在不同環境不同端口號啟動服務的配置。開發環境部署時,將 8080 賦值給 containerPort;測試環境部署時,將 8081 賦值給 containerPort。
預置占位符
AppStack 提供預置占位符,幫助簡化應用編排配置。
占位符命名空間 | 名稱 | 數據類型 | 類型 | 預填值 | 使用說明 |
AppStack | appName | 字符串 | 變量 | ${APPSTACK_APP_NAME} | AppStack 預置占位符,值為當前應用名 |
AppStack | envName | 字符串 | 變量 | ${APPSTACK_ENV_NAME} | AppStack 預置占位符,值為當前環境名稱 |
AppStack | image | 對象 | 常量 | -- | AppStack 預置占位符,用于定義鏡像, 如 |
AppStack | artifact | 對象 | 變量 | -- | AppStack 預置占位符,用于定義制品, 如 |
使用Go template語法靈活編排
云效 AppStack 應用編排支持 Go template 語法,使用 Go template 語法可以靈活編排你的應用,以下為兩個常用場景示例。
示例場景1:使用 if 差異化配置 YAML 區塊
使用if
關鍵字為生產環境增加更多附加標識。
......
template:
metadata:
labels:
run: app-demo
# 使用 if 差異化配置
{{- if eq .AppStack.envName "production" }}
msePilotAutoEnable: "on"
msePilotCreateAppName: "app-demo"
{{- end}}
spec:
containers:
......
示例場景2:使用 range 遍歷對象循環配置
使用 range
關鍵字遍歷對象,循環配置。
metadata:
name: spring-boot-{{ .AppStack.envName }}
labels:
run: spring-boot-{{ .AppStack.envName }}
# 使用 range 遍歷標簽對象配置 labels
{{ range $key,$value := .Values.labels }}
{{ $key }}: {{ $value }}
{{ end }}
namespace: {{ .Values.namespace }}
labels 變量取值如 {"key1":"value1","key2":"value2"}
,環境部署時,最終渲染 YAML 如下。
添加組件
Kubernetes 應用編排通常對應一到多個組件,可以按需添加多個不同類型的資源組件。
點擊 + 號,添加組件。
填寫組件名稱(組件唯一標識)和描述。
選擇組件模板,云效 AppStack 提供 Deployment、ConfigMap、Service、Secret、Ingress、PVC 這六種資源組件模板。也可以選擇空模板,自定義編排內容。
點擊 確定,編排中會增加新組件,并預填充對應類型的 YAML 文件模板內容,應用按需修改即可。
設置組件部署順序
Kubernetes 應用編排支持設置組件部署順序,支持以拖拉拽的方式自定義調整順序。部署順序為應用環境部署、回滾時的組件資源下發順序,組件支持串行部署、并行部署。環境刪除時將按部署逆序刪除組件資源。
刪除組件
點擊組件 tab 選中,點擊 tab 頁上的叉號,保存后即可將組件刪除。
編輯組件
點擊組件 tab 選中,點擊 設置組件 圖標,打開設置組件彈窗,可以修改組件名稱和描述。
暫存/保存編排
AppStack 每隔數秒會自動暫存編排的修改,也可以點擊 暫存 按鈕主動進行暫存,暫存并不會真正生效,只是記錄一個編排修訂版本。
點擊 保存 按鈕,記錄編排修訂版本,注意?:編排文件的更新并不會立即生效到應用環境,環境需要在下一次部署后生效新版本的應用編排。