全部產品
Search
文件中心

:升級Logtail組件(Kubernetes叢集)

更新時間:Jan 14, 2025

本文介紹Logtail組件升級的操作步驟。

升級說明

一般情況下,推薦您使用自動升級方式。如果您在logtail-ds的DaemonSet中或者在alibaba-log-controller的Deployment中修改過參數(例如環境變數),那麼為了使您的修改不被重設,建議使用手動升級方式。

建議在升級前,對Logtail組件相關描述檔案進行備份。具體操作,請參見附錄一:備份和復原說明

重要 升級期間(數秒內),因Logtail容器重啟,可能出現少量資料被重複或丟失採集的情況。

自動升級

重要 自動升級會重設您在logtail-ds和alibaba-log-controller中手動修改的配置。

阿里雲Kubernetes叢集

  1. 登入Container Service管理主控台

  2. 在左側導覽列中,單擊叢集

  3. 叢集列表頁面中,單擊目的地組群最右側的更多 > 營運管理 > 組件管理

  4. 日誌與監控頁簽中,找到logtail-ds,然後單擊升級
  5. 升級組件對話方塊中,單擊確定
    重要 如果無法升級到最新版本的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為例。

  1. 登入Container Service管理主控台

  2. 在左側導覽列中,單擊叢集

  3. 叢集列表頁面中,單擊目的地組群最右側的更多 > 營運管理 > 組件管理

  4. 在左側導覽列中,選擇工作負載 > 守護進程集
    說明 當您要升級alibaba-log-controller時,請選擇工作負載 > 無狀態,然後在kube-system命名空間下,找到alibaba-log-controller,完成升級。
  5. 選擇命名空間kube-system,然後單擊logtail-ds對應的編輯
  6. 檢查如下環境是否存在。
    如果不存在ALIYUN_LOGTAIL_CONFIG、ALIYUN_LOGTAIL_USER_ID、ALIYUN_LOGTAIL_USER_DEFINED_ID這三個環境變數,可能是因為您的Logtail版本太舊,您可以提交工單諮詢升級方法。
  7. 單擊鏡像Tag對應的選擇鏡像Tag
  8. 鏡像Tag對話方塊中,單擊最新版本,然後單擊確定
  9. 在頁面右側,單擊更新
    執行升級操作後,您可以在Container Service管理主控台上查看logtail-ds pod狀態。如果logtail-ds pod狀態都為running,表示升級成功。

自建Kubernetes叢集

  1. 登入您的Kubernetes叢集。
  2. 升級logtail-ds。
    1. 執行如下命令,進入配置模式。
      kubectl edit ds -n kube-system logtail-ds
    2. 修改image欄位。
      您可以通過logtail-ds鏡像倉庫查看最新鏡像版本。
    執行升級操作後,您可以通過kubectl describe -n kube-system ds logtail-ds | grep Status:命令查看logtail-ds pod狀態。如果返回結果都為Running,表示升級成功。
  3. 升級alibaba-log-controller。
    1. 執行如下命令,進入配置模式。
      kubectl edit deployment -n kube-system alibaba-log-controller
    2. 修改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。
  1. 刪除備份檔案中的冗餘資訊。
    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
  2. 應用精減後的備份檔案,恢複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檔案太舊,當您使用該版本時,升級和體驗新功能都可能遇到問題,推薦您升級到最新版本。操作步驟如下:

  1. 儲存已有的AliyunLogConfig CRD。
    請根據實際情況替換log-crds.yaml。
    kubectl get AliyunLogConfig -A -o yaml > log-crds.yaml
  2. 卸載logtail-ds組件。
    在阿里雲Container Service管理主控台的日誌與監控頁簽中,找到logtail-ds,然後單擊卸載。具體操作入口,請參見自動升級
  3. 安裝logtail-ds組件。
    在阿里雲Container Service管理主控台的日誌與監控頁簽中,找到logtail-ds,然後單擊安裝。具體操作入口,請參見自動升級
  4. 部署您已儲存的AliyunLogConfig CRD。
    請根據實際情況替換log-crds.yaml。
    kubectl apply -f  log-crds.yaml