kubernetes - 无法在 Terraform 中部署 Helm Chart(Kubernetes 集群无法访问)

标签 kubernetes google-cloud-platform terraform kubernetes-helm terraform-provider-gcp

我使用 Terraform ( link ) 启动了 GKE 集群,现在我尝试在集群上发布 Helm 图表,并尝试了“Nginx Ingress”Helm 图表,如下所示:

resource "helm_release" "ingress" {
  name       = "ingress"
  repository = "https://kubernetes.github.io/ingress-nginx"
  chart      = "ingress-nginx"
}

地形计划:

Terraform will perform the following actions:

  # helm_release.ingress will be created
  + resource "helm_release" "ingress" {
      + chart            = "ingress-nginx"
      + disable_webhooks = false
      + force_update     = false
      + id               = (known after apply)
      + metadata         = (known after apply)
      + name             = "ingress"
      + namespace        = "default"
      + recreate_pods    = false
      + repository       = "https://kubernetes.github.io/ingress-nginx"
      + reuse            = false
      + reuse_values     = false
      + status           = "DEPLOYED"
      + timeout          = 300
      + verify           = false
      + version          = "2.3.0"
      + wait             = true
    }

但我收到错误

Error: Kubernetes cluster unreachable: Get https://35.232.164.12/version?timeout=32s: dial tcp 35.232.164.12:443: i/o timeout

  on helm.tf line 36, in resource "helm_release" "ingress":
  36: resource "helm_release" "ingress" {

最佳答案

这里 terraform 无法创建与 Kubernetes 集群的连接。集群无法访问。

此外,使用 terraform 还必须首先设置耕耘机,然后 Helm chart 才能工作。

在 terraform 中,您可以使用 helm 提供程序,如果使用服务帐户,您可以添加现有帐户或根据需要创建一个帐户

provider "helm" {
  service_account = "${kubernetes_service_account.helm_account.metadata.0.name}"
  tiller_image = "gcr.io/kubernetes-helm/tiller:${var.helm_version}"
  #install_tiller = false

  kubernetes {
    host                   = "${google_container_cluster.<name>.endpoint}"
    token                  = "${data.google_client_config.current.access_token}"

    client_certificate     = "${base64decode(google_container_cluster.data-dome-cluster.master_auth.0.client_certificate)}"
    client_key             = "${base64decode(google_container_cluster.data-dome-cluster.master_auth.0.client_key)}"
    cluster_ca_certificate = "${base64decode(google_container_cluster.data-dome-cluster.master_auth.0.cluster_ca_certificate)}"
  }

一个 helm 开始运行,您可以使用 helm 包管理器开始设置其他版本。

您还可以查看此答案以获取更多详细信息:Deploying Helm workloads with Terraform on GKE cluster

关于kubernetes - 无法在 Terraform 中部署 Helm Chart(Kubernetes 集群无法访问),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62038714/

相关文章:

mongodb - AKS mongodb 不断崩溃 : connect ECONNREFUSED

Kubernetes 上的 Docker nginx 反向代理

java - 为什么在笔记本电脑上成功创建了我的Java docker镜像,但是上传到Google Cloud时却失败了?

google-app-engine - 在本地使用 cloud_sql_proxy 获取 notAuthorized 错误

python - 在 Google Cloud 上的 docker 镜像中运行 Jupyter Notebook

通过 Terraform 使用 For_Each 循环创建 Azure VM

centos - Kubernetes 外部访问容器中的应用程序

带有 KEDA 的 Azure Function 不会横向扩展超过 1 个 Pod

amazon-web-services - 是否有适用于 AWS Personalize 的 Terraform 或完成该任务的方法?

azure - 使用 Terraform 创建 Azure Synapse 池时出错