前言
因為阿裡雲的knative對應得k8s版本大于1.15,而我們目前得叢集環境是1.14.8,是以需要對預發環境進行版本更新。基于aliyun托管的kubernetes叢集版本更新本沒有什麼可寫,以aliyun的官方文檔為指引就可以實作。然而我今天在更新時發現并沒有那麼簡單,而且讓我學到了一個我認為很重要的點:一切的問題都有解決的方案。
問題
阿裡雲控制台
點選更新,就會進入更新前的檢查
可以看到問題出現,有一個api service異常。檢視詳細資訊
哦是因為我之前借助于cert-manager 給服務配置https 然後沒有删除幹淨。
處理
檢視apiservice
kubectl get apiservice
NAME SERVICE AVAILABLE AGE
......
v1alpha1.certmanager.webhook.alidns cert-manager/cert-manager-webhook-alidns False (ServiceNotFound) 7d
......
果然這個API Service是存在問題的,反正現在也不用了,先删除它吧
kubectl delete apiservice v1alpha1.certmanager.webhook.alidns
apiservice.apiregistration.k8s.io "v1alpha1.certmanager.webhook.alidns" deleted
再次執行更新
🆗!
感想
對于托管的k8s 老實講 沒什麼可操作的,因為托管一切變的簡單化,也因為托管造成了一些操作上的障礙。能自建還是自建吧。
通過此次更新,讓我再一次感受到在k8s中一切的問題都不叫問題,通過報錯就能解決絕大多數問題。
get、describe、logs k8s解決問題的三劍客。
過手如登山,一步一重天