本文介紹Logtail組件升級的操作步驟。
升級說明
一般情況下,推薦您使用自動升級方式。如果您在logtail-ds的DaemonSet中或者在alibaba-log-controller的Deployment中修改過參數(例如環境變數),那麼為了使您的修改不被重設,建議使用手動升級方式。
建議在升級前,對Logtail組件相關描述檔案進行備份。具體操作,請參見附錄一:備份和復原說明。
重要 升級期間(數秒內),因Logtail容器重啟,可能出現少量資料被重複或丟失採集的情況。
自動升級
重要 自動升級會重設您在logtail-ds和alibaba-log-controller中手動修改的配置。
阿里雲Kubernetes叢集
在左側導覽列中,單擊叢集。
在叢集列表頁面中,單擊目的地組群最右側的。
- 在日誌與監控頁簽中,找到logtail-ds,然後單擊升級。
- 在升級組件對話方塊中,單擊確定。重要 如果無法升級到最新版本的Logtail,說明您的Kubernetes叢集版本太舊。請先升級Kubernetes叢集或者使用手動升級方式。執行升級操作後,您可以在Container Service管理主控台上查看logtail-ds pod狀態。如果logtail-ds pod狀態都為running,表示升級成功。
自建Kubernetes叢集
重新安裝Logtail組件,即可完成自動升級。具體操作,請參見安裝Logtail組件(阿里雲Kubernetes叢集)。
手動升級
重要 手動升級不會根據最新版本的Logtail組件更新您的配置,部分特性最佳化可能不可用。
阿里雲Kubernetes叢集
手動升級包括升級logtail-ds和alibaba-log-controller。一般情況下,您只需要升級logtail-ds即可擷取新版本Logtail提供的採集能力。當您需要擷取新版Logtail CRD方式的採集能力時,需要升級alibaba-log-controller。以下步驟以logtail-ds為例。
在左側導覽列中,單擊叢集。
在叢集列表頁面中,單擊目的地組群最右側的。
- 在左側導覽列中,選擇。說明 當您要升級alibaba-log-controller時,請選擇,然後在kube-system命名空間下,找到alibaba-log-controller,完成升級。
- 選擇命名空間為kube-system,然後單擊logtail-ds對應的編輯。
- 檢查如下環境是否存在。如果不存在ALIYUN_LOGTAIL_CONFIG、ALIYUN_LOGTAIL_USER_ID、ALIYUN_LOGTAIL_USER_DEFINED_ID這三個環境變數,可能是因為您的Logtail版本太舊,您可以提交工單諮詢升級方法。
- 單擊鏡像Tag對應的選擇鏡像Tag。
- 在鏡像Tag對話方塊中,單擊最新版本,然後單擊確定。
- 在頁面右側,單擊更新。執行升級操作後,您可以在Container Service管理主控台上查看logtail-ds pod狀態。如果logtail-ds pod狀態都為running,表示升級成功。
自建Kubernetes叢集
- 登入您的Kubernetes叢集。
- 升級logtail-ds。
- 執行如下命令,進入配置模式。
kubectl edit ds -n kube-system logtail-ds - 修改image欄位。您可以通過logtail-ds鏡像倉庫查看最新鏡像版本。
執行升級操作後,您可以通過kubectl describe -n kube-system ds logtail-ds | grep Status:命令查看logtail-ds pod狀態。如果返回結果都為Running,表示升級成功。 - 執行如下命令,進入配置模式。
- 升級alibaba-log-controller。
- 執行如下命令,進入配置模式。
kubectl edit deployment -n kube-system alibaba-log-controller - 修改image欄位。您可以通過alibaba-log-controller鏡像倉庫查看最新鏡像版本。
執行升級操作後,您可以通過kubectl describe -n kube-system deployment alibaba-log-controller | grep Replicas:命令查看alibaba-log-controller pod狀態。如果返回結果都為updated,表示升級成功。 - 執行如下命令,進入配置模式。
附錄一:備份和復原說明
備份
建議在升級前,對Logtail組件相關描述檔案進行備份。樣本如下所示。
kubectl get ds -n kube-system logtail-ds -o yaml > logtail-ds.yaml
kubectl get deployment -n kube-system alibaba-log-controller -o yaml > alibaba-log-controller.yaml
kubectl get crd aliyunlogconfigs.log.alibabacloud.com -o yaml > aliyunlogconfigs-crd.yaml
kubectl get cm -n kube-system alibaba-log-configuration -o yaml > alibaba-log-configuration.yaml復原
如果您要復原到某個版本,可參考如下步驟。
說明 升級前備份的YAML檔案中包含不少冗餘資訊,需要您手動刪除後,才能用於恢複Logtail配置。您可以使用kubectl-neat工具完成此操作。需要刪除的欄位為metadata.creationTimestamp、metadata.generation、metadata.resourceVersion、metadata.uid和status。
- 刪除備份檔案中的冗餘資訊。
cat logtail-ds.yaml | kubectl-neat > neat-logtail-ds.yaml cat alibaba-log-controller.yaml | kubectl-neat > neat-alibaba-log-controller.yaml cat aliyunlogconfigs-crd.yaml | kubectl-neat > neat-aliyunlogconfigs-crd.yaml cat alibaba-log-configuration.yaml | kubectl-neat > neat-alibaba-log-configuration.yaml - 應用精減後的備份檔案,恢複Logtail配置。
kubectl apply -f neat-logtail-ds.yaml kubectl apply -f neat-alibaba-log-controller.yaml kubectl apply -f neat-aliyunlogconfigs-crd.yaml kubectl apply -f neat-alibaba-log-configuration.yaml
附錄二:升級Logtail latest版本
由於Logtail latest版本對應的YAML檔案太舊,當您使用該版本時,升級和體驗新功能都可能遇到問題,推薦您升級到最新版本。操作步驟如下:
- 儲存已有的AliyunLogConfig CRD。請根據實際情況替換log-crds.yaml。
kubectl get AliyunLogConfig -A -o yaml > log-crds.yaml - 卸載logtail-ds組件。在阿里雲Container Service管理主控台的日誌與監控頁簽中,找到logtail-ds,然後單擊卸載。具體操作入口,請參見自動升級。
- 安裝logtail-ds組件。在阿里雲Container Service管理主控台的日誌與監控頁簽中,找到logtail-ds,然後單擊安裝。具體操作入口,請參見自動升級。
- 部署您已儲存的AliyunLogConfig CRD。請根據實際情況替換log-crds.yaml。
kubectl apply -f log-crds.yaml