我們有一個過去可以作業的開發應用程式,但本地專案作業得很好。我需要找出開發版本停止作業的原因。
在開發環境中運行的 Kubernetes 映像可能與在本地開發人員環境中運行的映像不同,但我希望我能證明這一點。
我已經運行了各種kubectl命令,但到目前為止還沒有找到我需要查看本地環境中的映像版本和開發環境中當前運行的命令以便進行比較的命令。
非常感謝任何建議。
uj5u.com熱心網友回復:
嗨,
如果您描述您的 POD,您應該會看到可以比較的 Image Id a Hash。
kubectl describe pod <PODNAME>
Containers:
***:
Container ID: containerd://bb57f04e34e6e5e49b956dabc4d99eab1a23106a8cde03d058c2acfbbcf83561
Image: ****/***:12544
Image ID: ****/***@sha256:c197064bb83f386bc23bc5012c1a929b8a6b428288ddad7d6ab72a80227a6754
uj5u.com熱心網友回復:
所以集群拉的那個版本不行,但是開發者機器上的那個版本不行?
驗證這一點的簡單方法是將開發人員的副本推送到不同的標簽或不同的影像。
因此,例如,如果影像是myimages/myimage,開發人員可以執行以下操作:
docker tag myimages/myimage myimages/myimage:test
docker push myimages/myimage:test
然后將 kubernetes 部署設定為使用myimages/myimage:test,看看是否有效。
如果它適用于該版本,但在您使用時不起作用,myimages/myimage那么開發人員的版本確實與 kubernetes 集群使用的版本不同,很可能他們進行了代碼更改并重建了映像但忘記推送到注冊表。
uj5u.com熱心網友回復:
所以我想出了用什么 kubectl 命令來得到我想要的,這正是我想要的——
kubectl get pods --namespace global-grid -o jsonpath="{.items[*].spec.containers[*].image}"
我能夠使用這些資訊,然后進入該環境的 kubernetes 部署 .yaml 檔案,查看附加到影像的標簽應該是什么 - 它們不匹配,所以它變成了重新部署影像的簡單問題使用部署 yaml 檔案中的 kubectl 命令列,這可以正確標記和部署映像。
現在一切都好。賬單
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/472487.html
標籤:Kubernetes
上一篇:如何使用從nginx.conf中的部署檔案傳遞的環境變數
下一篇:如何在Helm中獲取當前日期
