我想将Pod从AWS托管的K8s集群移至GKE(Google)。问题在于,在GKE实例上,我没有AWS元数据来承担IAM角色(显然)。 但是我想我可以做类似于kube2iam的事情,以使Pod像在AWS内部运行一样承担角色。含义是,运行一个守护程序集,以模拟对Pod的元数据的访问。 我已经在云之间建立了VPN。
有人做过吗?
答案 0 :(得分:0)
我还没有尝试过。但是请记住,在GKE中,IAM角色与帐户(用户帐户/服务帐户)相关联,而不与资源(pod /节点)相关联。
此外,kube2iam看起来更像是安全解决方案,而不是兼容性解决方案。从kube2iam节点获得凭据后,仍然会遇到兼容性问题。
我认为更好的解决方案是使用API调用并处理身份验证。
答案 1 :(得分:0)
针对您的用例的一个更新且可能更好的选择是Google在今年6月宣布的GKE工作负载身份功能:https://www.google.com/amp/s/cloudblog.withgoogle.com/products/containers-kubernetes/introducing-workload-identity-better-authentication-for-your-gke-applications/amp/
它使您可以将GCP IAM SA绑定到K8s SA和名称空间。然后,使用该名称空间的K8s SA创建的任何Pod都会自动安装绑定的IAM SA的临时凭据-GCP gcloud SDK在从Pod执行gcloud命令时会自动进行身份验证。