gpt4 book ai didi

kubernetes - 如何获取 `provider "kubernetes "` authenticate with ` google_container_cluster`

转载 作者:行者123 更新时间:2023-12-02 11:43:05 26 4
gpt4 key购买 nike

需要将集群部署到 GCP 并设置、helm、ingress 和其他一些东西,而无需手动运行 gcloud 命令。尝试了很多方法 google_container_cluster 有和没有证书和用户/通行证。我得到两种结果:

错误:serviceaccounts 被禁止:用户“system:anonymous”无法在命名空间“kube-system”的 API 组“”中创建资源“serviceaccounts”或者错误:serviceaccounts 被禁止:用户“client”无法在命名空间“kube-system”的 API 组“”中创建资源“serviceaccounts”

我设法理解的是,如果我生成证书,gke 将拥有与它将创建的证书相对应的默认用户“客户端”,否则它将保留默认用户“匿名”- 没有用户。

我的问题是我无法找到告诉 google_container_cluster 使用特定帐户或告诉 provider "kubernetes" 接受任何用户的方法。如果不通过 gcloud 进行身份验证,也找不到将 RBAC 文件应用于集群的方法。

最佳答案

我通过更新 Terraform 连接到 Kubernetes 集群的方式解决了这个问题。当我将后端更改为使用“远程”(Terraform Cloud) 时,它不再起作用,并且出现了相同类型的错误消息。这是因为使用“远程”后端 Terraform 不使用本地 kubectl 配置。

例如:https://github.com/terraform-providers/terraform-provider-kubernetes/issues/347

所以我添加了一个 block 来获取配置

data "google_client_config" "default" {
}

然后我从使用“client_certificate”和“client_key”更新为“token”:

provider "kubernetes" {
load_config_file = false
host = data.google_container_cluster.gke-cluster.endpoint
token = data.google_client_config.default.access_token
cluster_ca_certificate = base64decode(data.google_container_cluster.gke-cluster.master_auth.0.cluster_ca_certificate)
}

希望这对其他人有用。

关于kubernetes - 如何获取 `provider "kubernetes "` authenticate with ` google_container_cluster`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59217042/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com