相关疑难解决方法(0)

使用Terraform管理GKE及其部署

我可以用来terraform在中部署Kubernetes群集GKE

然后,我将提供程序设置Kubernetes如下:

provider "kubernetes" {
  host                    = "${data.google_container_cluster.primary.endpoint}"

  client_certificate      = "${base64decode(data.google_container_cluster.primary.master_auth.0.client_certificate)}"
  client_key              = "${base64decode(data.google_container_cluster.primary.master_auth.0.client_key)}"
  cluster_ca_certificate  = "${base64decode(data.google_container_cluster.primary.master_auth.0.cluster_ca_certificate)}"
}
Run Code Online (Sandbox Code Playgroud)

默认情况下,terraformKubernetes用户互动client,后者无权创建(例如)部署。因此,当我尝试通过以下方式应用更改时,出现此错误terraform

Error: Error applying plan:

1 error(s) occurred:

 * kubernetes_deployment.foo: 1 error(s) occurred:

 * kubernetes_deployment.foo: Failed to create deployment: deployments.apps is forbidden: User "client" cannot create deployments.apps in the namespace "default"
Run Code Online (Sandbox Code Playgroud)

我不知道现在该如何进行,应该如何向client用户授予此权限?

如果将以下字段添加到提供程序,则我可以执行部署,尽管在阅读文档之后,这些凭据似乎用于HTTP与群集进行通信,如果通过Internet完成,则是不安全的。

username              = "${data.google_container_cluster.primary.master_auth.0.username}"
password              = "${data.google_container_cluster.primary.master_auth.0.password}"
Run Code Online (Sandbox Code Playgroud)

还有其他更好的方法吗?

kubernetes google-kubernetes-engine terraform-provider-gcp terraform-provider-kubernetes

1
推荐指数
1
解决办法
573
查看次数