本文主要介紹云效 AppStack 環境的定義和生命周期管理功能。環境是應用在某個級別運行的載體,通常對應一組K8s資源實例或主機服務。在AppStack中,一個應用可以創建多個環境實例,用于開發、測試、生產等場景,用戶可以分別管理和監控這些環境。
新建環境
進入 應用-環境 ,單擊 新建環境 ,打開新建環境彈窗。
填寫 環境名稱 :應用下環境唯一標識,創建后不可修改。支持1-63個小寫英文字母、數字或"-",不能以"-"開頭或結尾。
填寫 環境顯示名 :環境顯示名,創建后可在環境設置里按需修改。支持1-64個中英文字符、數字或符號。
選擇 部署方式 :可選部署方式由應用編排方式決定,每個環境指定一種部署方式。
選擇 資源 :環境實際部署時使用資源,根據部署方式可選指定類型資源。
Kubernetes部署 :則可選自己有權限的 K8s 集群資源。
主機部署:則可選自己有權限的主機集群。可以關聯主機集群下的已有 部署組,也可以直接指定主機集群下的某幾臺機器。 (注意:指定機器,云效 AppStack 會自動為這幾臺機器創建一個部署組,部署組唯一名稱為:
${應用名}-${環境名稱}-group
,部署組顯示名為:${應用名}-${環境顯示名}-部署組
。你可以在主機集群的 關聯部署組 列表里管理部署組)。
選擇 變量組 :變量組用于環境部署時動態替換應用編排中占位符引用的變量,關聯后可在環境設置里按需修改。
選擇 標簽 :鍵值對,用于環境等級劃分。
填寫 描述 :環境的描述信息。
單擊 確認 即可新建環境,環境新建成功后將自動跳轉至環境詳情頁面。
查看環境列表
進入 應用-環境 ,展示當前應用下的所有環境列表。
每個環境卡片上展示:環境名稱、環境標簽、環境最近變更信息、環境當前版本以及環境最近一次部署狀態。
單擊環境卡片上的 立即部署 可以提交新的部署工單。
單擊環境卡片可以進入環境詳情頁面查看環境更多信息,具體參見查看環境詳情。
單擊環境列表上方 新建環境 ,具體操作參見新建環境 。
說明: 在新建應用時,AppStack 為應用預設三套開箱即用的環境:開發環境、測試環境、生產環境(對應企業三套標簽:環境級別/開發環境、環境級別/測試環境、環境級別/生產環境)。 在環境卡片上通過 快速設置 關聯資源后即可使用。預設環境可以修改或刪除,也可以新建自定義環境使用。
查看環境詳情
進入
,從環境列表選擇目標環境卡片,單擊進入環境詳情頁面。環境詳情頁面可以查看基礎信息、環境部署的具體資源信息、部署版本、環境設置以及環境運維操作入口。
基礎信息
環境概覽:展示當前環境使用的應用編排、變量組、部署組等信息。
變更信息:展示環境最近一次的變更信息,包括:變更工單、變更人、變更時間、當前版本等。
基本信息:展示環境的基本信息,包括環境的創建人、創建時間、標簽、描述信息。
Kubernetes 環境資源
環境詳情可以查看本環境當前部署的所有資源信息,包含的具體資源由應用編排中定義的組件決定。當環境部署方式為 Kubernentes部署 時,可能包括的資源有工作負載、配置、網絡、存儲等。
工作負載
工作負載 tab頁面,展示本環境下部署的所有工作負載資源。工作負載是在 Kubernetes 集群上運行的應用程序。截止當前 AppStack 僅支持無狀態工作負載, 即 Deployment,適用于實例完全獨立、功能相同的場景,如:nginx、wordpress 等。
可以查看工作負載下的實例信息。
實例名稱
實例狀態
部署版本
創建時間
容器信息
單擊 YAML 可以查看 Deployment 組件的 YAML 信息。
單擊 詳情 可以查看更多Pod信息。
Pod信息
Pod狀態 :Pod 的運行狀態。
Pod IP :Pod 的 IP。
所在節點 :實例所在節點名稱和節點 IP。
創建時間 :實例創建的時間。
運行時間 :實例從啟動至今的時間。
容器信息
容器名稱:容器的名稱。
鏡像:容器所使用的鏡像。
容器狀態:容器的運行狀態。
重啟次數:實例從啟動至今實例中容器的重啟次數之和。
關鍵事件
可以查看Pod的關鍵事件,包括事件時間、事件原因、事件詳細信息。可以用于輔助 Pod 問題定位。
容器日志
可以查看容器的標準輸出日志。
單擊 日志 可以查看容器日志,用于輔助問題定位和排查。
配置
配置 tab頁面,展示本環境下的所有配置資源信息,可能包括 ConfigMap 和 Secret。ConfigMap 可以用來將非機密性的數據保存到鍵值對中,使用時,可以將其用作 Pod 的環境變量、 命令行參數或者存儲卷中的配置文件。Secret 對象類型用來保存敏感信息,例如密碼、OAuth 令牌和 SSH 密鑰等。配置將您的環境配置信息和容器鏡像解耦,便于應用配置的修改。
ConfigMap
組件名稱 :應用編排里定義的組件名稱
部署狀態 :組件的部署狀態
部署版本 :最近部署的版本號
更新時間 :最近部署時間
YAML :單擊可以查看 ConfigMap 組件的 YAML 信息。
Secret
組件名稱 :應用編排里定義的組件名稱
部署狀態 :組件的部署狀態
部署版本 :最近部署的版本號
更新時間 :最近部署時間
YAML :單擊可以查看 Secret 組件的 YAML 信息。
網絡
網絡 tab頁面,展示本環境下的所有網絡資源信息,可能包括 Service 和 Ingress 。Service 可以用來為一組 Pod 提供固定的訪問入口,并對這一組 Pod 做負載均衡。Ingress 用來管理集群外部訪問集群內部服務的方式,您可以通過 Ingress 資源來配置不同的轉發規則,從而達到根據不同的規則設置訪問集群內不同的Service 后端 Pod 的目的。
Service
組件名稱 :應用編排里定義的組件名稱
類型 :可能為ClusterIP、NodePort、LoadBalancer、Headless Service、ExternalName等,具體由應用編排里定義的Service類型決定
集群IP
端點 :服務映射端點信息
部署狀態 :組件的部署狀態
部署版本 :最近部署的版本號
更新時間 :最近部署時間
單擊 YAML ,可以查看 Service 組件的 YAML 信息。
Ingress
組件名稱 :應用編排里定義的組件名稱
路由規則數 :組件里定義的路由轉發規則數,單擊路由規則數,可以查看具體的轉發規則:
域名
URL
目標服務
服務端口
URL匹配規則
部署狀態 :組件的部署狀態
部署版本 :最近部署的版本號
更新時間 :最近部署時間
單擊 YAML 操作,可以查看 Ingress 組件的 YAML 信息。
存儲
存儲 tab頁面,展示本環境下的所有存儲資源信息。Kubernetes 抽象了PV(PersistentVolume)和PVC(PersistentVolumeClaim)來定義和使用存儲。PV 描述的是持久化存儲卷,主要定義的是一個持久化存儲在宿主機上的目錄,比如一個文件存儲的掛載目錄。 PVC 描述的是 Pod 所希望使用的持久化存儲的屬性,比如,Volume 存儲的大小、可讀寫權限等等。通常在使用時,可以使用 PV 描述已有的存儲資源,然后創建 PVC 使用存儲。
PVC
組件名稱 :應用編排里定義的組件名稱
類型 :可讀寫權限類型,由應用編排里的組件定義,可能為:只讀、讀寫
容量 :聲明的使用Volume存儲的大小
部署狀態 :組件的部署狀態
部署版本 :最近部署的版本號
更新時間 :最近部署時間
YAML :單擊可以查看 PVC 組件的 YAML 信息
主機環境資源
展示當前主機環境下部署的機器
主機ID
主機名稱
IP
連接狀態:當前機器的 Agent 連接狀態
設置環境
環境創建完后,你可以通過 環境設置 功能來修改環境的一些基本信息設置和部署配置。
基本設置 :可以修改 環境名稱 、 標簽 、 描述 。
部署設置:可以設置環境關聯 變量組 。暫不支持修改環境 部署方式 和 資源。
鎖定環境
日常研發流程中,經常會有搶占環境進行回歸驗證或因特殊原因發布窗口關閉的場景,此時可以使用 鎖定 環境功能。環境鎖定后無法再提交任何運維操作,但不影響已有工單的執行。 功能入口:環境詳情頁面,右上角操作區域后的更多操作里。環境鎖定后需由鎖定人去解鎖環境后才可再次執行變更。
歷史記錄
環境部署運維中經常需要追溯環境歷史,用于問題的定位排查或其他場景。環境管理提供了 歷史記錄 功能,記錄了環境從創建開始的所有修改,包括生成運維工單的 變更記錄 , 也包括環境基本信息、配置等元數據信息修改的 操作記錄 。功能入口:環境詳情頁面,右上角操作區域 歷史記錄 。
變更記錄
展示當前環境下所有運維變更記錄,單條變更記錄信息包括:
變更工單 :運維工單名稱。
類型狀態 :工單的類型和狀態。
版本 :工單的部署版本。
提交信息 :工單提交人和提交時間。
操作記錄
展示當前環境下所有操作記錄,單條操作記錄展示:
操作標題
操作內容
操作人
操作時間
刪除環境
當環境不再使用時可以使用環境刪除功能來銷毀環境。環境刪除將釋放環境資源,應用將不可對外提供服務,數據不可恢復,請謹慎操作!
刪除未部署環境
進入環境詳情頁面,右上角操作區域,單擊 刪除 按鈕,打開 刪除環境 二次確認彈窗。
單擊 確定 刪除,直接清理環境數據,即刻生效。
刪除部署過的環境
提交環境刪除單
進入環境詳情頁面,右上角操作區域,單擊 刪除 按鈕,打開新建 刪除環境 工單頁面。
核對環境信息:工單頁面會列出當前環境部署的所有 組件信息 ,以及環境 最近變更 信息,請仔細核對,確認環境是否不再使用。
輸入 環境顯示名 以確認刪除 。
單擊 提交 環境刪除工單,跳轉環境刪除工單詳情頁面。
觀察環境刪除過程