背景:
部署deployment服務之后,pod拉起失敗, describe 顯示code = Canceled desc = context canceled
分析:
1.查看harbor,排除網絡問題
2.服務器上可以 docker pull ,排除image問題
3.查看pull image policy 為 IfNotPresent 排除鏡像策略問題
4.查看 pod日志,code = Canceled ,表示pull 這個動作被取消,由於手動沒法停止 kubelet pull image的操作,只能是服務端發起的
參考資料
1.於是查看了kubelet的官方文檔,發現了問題所在
https://kubernetes.io/docs/reference/command-line-tools-reference/kubelet/
官方默認pull的超時時間是1m。由參數–image-pull-progress-deadline 控制
解決:
問題基本上已經能確認,是由於 鏡像過大,下載超時,引起服務端canceled
具體解決辦法
1./etc/default/kubelet 中添加KUBELET_OPTS=–image-pull-progress-deadline=60m
有的環境可能在/etc/sysconfig/kubelet 配置文件
2 . systemctl restart kubelet
詳情:https://blog.csdn.net/textdemo123/article/details/100519187