在卸載重裝istio的時候,發現namespace標記爲刪除後,長期處於Terminating狀態,且namespace下的資源並沒有被刪除。
問題復現
新建一個空的namespace,執行刪除:
oc指令執行刪除,執行過程卡死,ctrl+c退出後查看namespace,新建的空namespace處於Terminating狀態,並無法刪除。排除因namespace下資源過多導致卡死這一猜測。
單獨刪除namespace下的pod等資源對象,均能正確刪除。猜測namespace controller出現了問題。
問題解決
查看namespace controller的日誌:
# oc logs master-controllers-master.example.com -n kube-system | grep namespace_controller.go > 1.out
發現報錯信息如下:
E0220 08:45:01.306979 1 namespace_controller.go:148] unable to retrieve the complete list of server APIs: metrics.k8s.io/v1beta1: the server is currently unable to handle the request
根據報錯信息排查,問題出在metrics-server上,之前安裝測試完metrics-server之後,我把pod數置爲了0,將pod數重置爲1。
pod正確啓動之後,namespace controller恢復正常,namespace正確刪除。