Latest kubectl From gcloud Get cronjobs Incorrectly

Google Cloud SDK 最新的 kubectl 無法存取 k8s cronjob

Zz Chen
踩坑筆記本
2 min readJan 9, 2019

--

問題

使用 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
Cloud SDK

研究

debug 了下,看起來主要原因應該是因為舊版的 kubectl 使用了

/apis/batch/v1/namespaces/{namespace}/cronjobs/{name}

作為內容的抓取 API,而回傳 404 導致我們看到 NotFound 的錯誤。

而新版的 kubectl 是使用 event API 加上 fieldSelector 來拿資料

/api/v1/namespaces/{namespace}/events

總之就是 API change 所以爆炸啦~

--

--

Zz Chen
踩坑筆記本

熱血創業咖、熱愛開源專案,喜愛鑽研新技術,捲起袖子將新技術應用於日常專案的黑手