使用這個 kubectl 部署一個帶有 nginx 鏡像的 pod
kubectl create deployment --image=<image-name-1.0> image-app
現在我想用 image=<image-name-2.0> 更新這個 pod
并運行此命令
kubectl create deployment --image=<image-name-2.0> image-app
我的問題是使用 image-name-2.0.0 更新后是否會更新舊的 pod 日志。
我可以查看所有歷史記錄嗎?我的意思是他們兩個。
uj5u.com熱心網友回復:
準確地說,沒有“pod 日志”而是容器日志,您可以使用kubectl logs --previous <pod name> -c <container name>它從以前的容器中檢索日志。
附注更新影像,你可以 kubectl set image deployment/<name> <container name>=<image repo:tag>
uj5u.com熱心網友回復:
首先,您不能使用更新現有的部署,kubectl create deployment因為您會收到如下錯誤:
error: failed to create deployment: deployments.apps "image-app" already exists
在您的情況下,您應該使用本示例中所示的kubectl set image命令:
kubectl set image deployment/image-app <container-name>=<image>:<tag>
更新部署意味著具有舊版本(在您的情況下image-name-1.0)的 Pod 將被終止,并image-name-2.0會創建新的 Pod(具有)。有關部署更新程序如何作業的更多詳細資訊,我建議閱讀這篇文章。
這意味著您無法使用kubectl logs命令從具有較舊映像版本的 pod 中獲取日志,因為這些 pod 將不再存在。
請記住,該kubectl logs --previous <pod-name> -c <container-name>命令正在從同一 pod 中容器的前一個實體獲取日志。如果 pod 終止(這是部署更新期間發生的情況),日志將丟失。
怎么辦?
您可以嘗試直接從Kubernetes 檔案中的本示例中顯示的節點獲取日志,但也可能會洗掉已洗掉 pod 中的日志檔案 - 取決于您使用的是哪個容器運行時和 Kubernetes 集群解決方案。
最好的選擇是實施中央日志管理系統。檢查這個答案。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/349809.html
標籤:Kubernetes
