Latest kubectl From gcloud Get cronjobs Incorrectly
問題
使用 GKE 而且有用到 kubernetes 的 cronjobs 功能的朋友,如果你的 `kubectl` 是透過 `gcloud components install` 而來的,那就會碰到這樣的問題。
% kubectl describe cronjobs XXXX
Error from server (NotFound): the server could not find the requested resource
針對 Google Cloud SDK 目前使用有問題的 kubectl 版本,剛剛跑去丟了一張 issue 給官方,不知道會不會有下文就是了 XD
https://issuetracker.google.com/issues/122552551
暫時解法
去 https://kubernetes.io/docs/tasks/tools/install-kubectl/#install-kubectl 找你喜歡的方式換裝新版的 kubectl binary,如果你也是 Mac 那就直接
% brew install kubernetes-cli
研究
debug 了下,看起來主要原因應該是因為舊版的 kubectl 使用了
/apis/batch/v1/namespaces/{namespace}/cronjobs/{name}
作為內容的抓取 API,而回傳 404 導致我們看到 NotFound 的錯誤。
而新版的 kubectl 是使用 event API 加上 fieldSelector 來拿資料
/api/v1/namespaces/{namespace}/events
總之就是 API change 所以爆炸啦~