這篇文章主要講解了“Kubernetes 1.16.x升級后的問題有哪些”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Kubernetes 1.16.x升級后的問題有哪些”吧!
除了apiserver/controller/scheduler幾個主要的服務的鏡像版本變為1.16.3之外,其它包括:
etcd使用的是3.3.15-0(還不是最新的4.x系列)。
CoreDNS使用的是 1.6.2(1.15.x還是1.3.1,變化比較大),這個會引起啟動失敗。
Ubuntu系統自動升級Docker-CE到了19.3.4,但是使用kubectl get node -owide獲取節點信息發現,始終是Not Ready狀態。
查看狀態:kubectl describe node/podc01,發現CNI失敗。
將其降級到19.3.2后就可以了。
方法:
查看可用版本:sudo apt list docker-ce -a
安裝制定版本:sudo apt install docker-ce=xxxxxx
Update the /etc/docker/daemon.json
CoreDNS使用的是 1.6.2(1.15.x還是1.3.1,變化比較大),這個會引起啟動失敗。
參見 https://github.com/Azure/aks-engine/pull/1493
主要原因是直接對Docker Image升級的話,配置參數沒有同步升級。
但是老的參數對新的版本又不適用,這個就比較悲催了。
只能期待發布一個新的參數或升級工具,或者以后CoreDNS將跨版本的配置參數封裝在鏡像里。
目前這個問題還沒有更好的解決方案,等待CoreDNS社區牛人出手。
Dashboard 1.x只支持到1.15,升級鏡像到1.10.1版本也不行,而且不再維護、更新了。
Kubernetes 1.16.x只能使用Dashboard 2.x。
但是這個呢,目前還在開發中,最新的是Beta5。
Dashboard 2.x有幾個大的變化:
這個對中國用戶到是方便了,可以系統直接pull下來。
缺省的安裝模版中namespace為kubernetes-dashboard,不是kube-system了。
Docker image位置變了,從gcr摘出來了,變為kubernetesui/dashboard:v2.0.0-beta5。
安裝指示安裝完Dashboard 2.x,登錄到系統,信息顯示不出來。
原來的JupuyterHub for K8s運行得好好的,升級完后Server就啟動不起來了。
進去查看信息:
supermap@podc01:~$ kubectl get pod -n jupyter -owide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES hub-75d575499b-6d76n 1/1 Running 0 19m 10.244.0.15 podc02 <none> <none> proxy-589655677b-qcfrm 1/1 Running 0 19m 10.244.1.140 podc03 <none> <none> kubectl logs hub-75d575499b-6d76n -n jupyter
hub和proxy的pod和svc都是可以的。
進一步檢查hub的日志:
kubectl logs pod/hub-75d575499b-6d76n -n jupyter
得到下面的出錯信息,是JupyterHub啟動Notebook Server是執行腳本過程中出錯:
E 2019-10-28 07:46:58.604 JupyterHub log:158] 500 GET /hub/user/supermap/ (supermap@10.244.7.0) 1028.54ms [I 2019-10-28 07:47:18.636 JupyterHub log:158] 302 GET /hub/spawn -> /user/supermap/ (supermap@10.244.7.0) 167.95ms [I 2019-10-28 07:47:18.672 JupyterHub log:158] 302 GET /user/supermap/ -> /hub/user/supermap/ (@10.244.7.0) 1.02ms [E 2019-10-28 07:47:19.404 JupyterHub user:477] Unhandled error starting supermap's server: '<' not supported between instances of 'datetime.datetime' and 'NoneType' [E 2019-10-28 07:47:19.724 JupyterHub gen:974] Exception in Future <Task finished coro=<BaseHandler.spawn_single_user.<locals>.finish_user_spawn() done, defined at /usr/local/lib/python3.6/dist-packages/jupyterhub/handlers/base.py:619> exception=TypeError("'<' not supported between instances of 'datetime.datetime' and 'NoneType'",)> after timeout Traceback (most recent call last): File "/usr/local/lib/python3.6/dist-packages/tornado/gen.py", line 970, in error_callback future.result() File "/usr/local/lib/python3.6/dist-packages/jupyterhub/handlers/base.py", line 626, in finish_user_spawn await spawn_future File "/usr/local/lib/python3.6/dist-packages/jupyterhub/user.py", line 489, in spawn raise e File "/usr/local/lib/python3.6/dist-packages/jupyterhub/user.py", line 409, in spawn url = await gen.with_timeout(timedelta(seconds=spawner.start_timeout), f) File "/usr/local/lib/python3.6/dist-packages/kubespawner/spawner.py", line 1648, in _start events = self.events File "/usr/local/lib/python3.6/dist-packages/kubespawner/spawner.py", line 1503, in events for event in self.event_reflector.events: File "/usr/local/lib/python3.6/dist-packages/kubespawner/spawner.py", line 62, in events key=lambda x: x.last_timestamp, TypeError: '<' not supported between instances of 'datetime.datetime' and 'NoneType'
目前,還沒有找到好的解決辦法,只能先放到項目的issue里,等著。
下面是一個臨時的補丁方法(親測可用):
kubectl patch deploy -n jupyter hub --type json --patch '[{"op": "replace", "path": "/spec/template/spec/containers/0/command", "value": ["bash", "-c", "\nmkdir -p ~/hotfix\ncp -r /usr/local/lib/python3.6/dist-packages/kubespawner ~/hotfix\nls -R ~/hotfix\npatch ~/hotfix/kubespawner/spawner.py << EOT\n72c72\n< key=lambda x: x.last_timestamp,\n---\n> key=lambda x: x.last_timestamp and x.last_timestamp.timestamp() or 0.,\nEOT\n\nPYTHONPATH=$HOME/hotfix jupyterhub --config /srv/jupyterhub_config.py --upgrade-db\n"]}]'
感謝各位的閱讀,以上就是“Kubernetes 1.16.x升級后的問題有哪些”的內容了,經過本文的學習后,相信大家對Kubernetes 1.16.x升級后的問題有哪些這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。