使用Kubernetes服务帐户中的Google服务帐户密钥文件作为GKE工作负载标识的测试环境替换



我有一个GKE应用程序,它使用链接到谷歌服务帐户的kubernetes服务帐户在应用程序中进行api授权。

到目前为止,为了在本地测试这些图像,我有两个版本的图像,一个带有test-keyfile.json,另一个没有test-keyfile.json。(生产映像使用serviceaccount进行授权,测试环境将忽略serviceaccount,而是查找在映像构建过程中复制的密钥文件。(

我想知道是否有一种方法可以将这些图像合并为一个图像,并让prod/test都使用Kubernetes服务帐户进行授权。在生产中,使用GKE的工作负载标识,在测试中,使用与Kubernetes服务帐户链接或注入其中的密钥文件。

这样的事情可能吗?有没有更好的方法在本地测试环境中模拟GKE工作负载标识?

我不知道在非Google Kubernetes集群上模拟工作负载标识的方法,但根据环境设置,您可以更改应用程序以从卷/文件或元数据服务器读取身份验证凭据。有关如何根据环境变量使用本地凭据或GoogleSA进行身份验证的示例,请参阅本文(尤其是链接的代码(。本文还展示了如何使用Pod覆盖来将prod与dev的更改与大部分配置分开。

最新更新