运行 来自 GKE cronjob 使用工作负载身份的 kubectl 命令

Run kubectl command from GKE cronjob using workload identity

我想从 cronjob pod 中 运行 kubectl 命令,每周在同一时间更改部署的 HPA 上的最小副本数,即基于时间的缩放.我一直在尝试使用安装了 gcloud 和 kubectl 的官方 google-sdk 图像。

我知道我需要先对 GKE 集群进行身份验证,然后才能 运行 命令通过 kubectl 进行交互,我真的很想避免将服务帐户密钥(通过秘密)安装到 pod ,因为我们已经启用了工作负载身份。

普通的 gcloud 命令使用这种方法可以正常工作,例如gcloud compute instances list 但是当我 运行 gcloud container clusters get-credentials.... 它没有说我需要 运行 gcloud auth login - 当然不能完成。

我读过this post, I don't really want to use cURL if I can avoid it, and also know that gcloud doesn't use GOOGLE_APPLICATION_CREDENTIALS (this post)

有谁知道我可以使用工作负载标识并使其正常工作的方法吗?

我找到了获得此身份验证的方法,在尝试从 cronjob pod 中 运行 kubectl 命令之前,我必须使用以下命令:

gcloud --account <account-name>