Google-Cloud-Platform

如何使用 Terraform 創建 GKE 集群並部署 Kubernetes 資源

  • December 16, 2019

我想創建一個 GKE 集群,然後將其作為現有集群導入 Rancher。第二步,我需要將一些 Kubernetes 資源安裝到集群中。

集群創建工作正常。我設置

master_auth {
 client_certificate_config {
   issue_client_certificate = true
 }
}

然後稍後訪問中的值

provider "kubernetes" {
 host                   = var.kubernetes_endpoint
 client_certificate     = var.kubernetes_client_certificate
 client_key             = var.kubernetes_client_key
 cluster_ca_certificate = var.kubernetes_cluster_ca_certificate
}

但是,嘗試在集群中創建 Kubernetes 資源時出現錯誤

Error: clusterroles.rbac.authorization.k8s.io is forbidden: User "client" cannot create resource "clusterroles" in API group "rbac.authorization.k8s.io" at the cluster scope
 on modules/install-rancher/resources.tf line 1, in resource "kubernetes_cluster_role" "proxy-clusterrole-kubeapiserver":
  1: resource "kubernetes_cluster_role" "proxy-clusterrole-kubeapiserver" {

有沒有辦法通過 Terraform 獲得具有管理員權限的客戶端證書?

這就是您可以解決我的問題並連結不同的 Terraform 提供程序/部署的方法。

data "google_client_config" "client_config" {
 provider = google-beta
}

provider "kubernetes" {
 load_config_file = false

 host                   = var.endpoint_from_created_cluster
 token                  = data.google_client_config.client_config.access_token
 cluster_ca_certificate = var.ca_certificate_from_created_cluster
}

引用自:https://serverfault.com/questions/994412