微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如果尚未创建集群,则 terraform 计划会从 kubernetes 提供程序抛出错误

如何解决如果尚未创建集群,则 terraform 计划会从 kubernetes 提供程序抛出错误

我有一个 terraform 配置,它将创建一个 GKE 集群、节点池,然后调用 kubernetes 来设置我的应用程序。当我在尚未创建集群的新项目上运行此配置时,kubernetes 提供程序会引发以下错误

Error: Kubernetes cluster unreachable: invalid configuration: no configuration has been provided,try setting KUBERNETES_MASTER environment variable


Error: Get "http://localhost/apis/rbac.authorization.k8s.io/v1/clusterrolebindings/cluster-admin-binding": dial tcp [::1]:80: connect: connection refused


Error: Get "http://localhost/api/v1/namespaces/rabbitmq": dial tcp [::1]:80: connect: connection refused

如果我注释掉所有 kubernetes 部分,请运行 terraform apply 以创建集群,然后取消对 kubernetes 部分的注释并尝试它工作正常并创建所有 kubernetes 资源。

我检查了 kubernetes provider 的文档,它说集群应该已经存在。

k8s getting started

There are at least 2 steps involved in scheduling your first container on a Kubernetes cluster. You need the Kubernetes cluster with all its components running somewhere and then schedule the Kubernetes resources,like Pods,Replication Controllers,Services etc.

如何告诉 terraform 在规划 kubernetes 之前等待集群创建?

我的配置如下所示 main.tf

.
.
.

module "gke" {
  source = "./modules/gke"

  name                     = var.gke_cluster_name
  project_id               = data.google_project.project.project_id
  gke_location             = var.gke_zone
  .
  .
  .
}

data "google_client_config" "provider" {}

provider "kubernetes" {
  version                = "~> 1.13.3"
  alias                  = "my-kuber"
  host                   = "https://${module.gke.endpoint}"
  token                  = data.google_client_config.provider.access_token
  cluster_ca_certificate = module.gke.cluster_ca_certificate
  load_config_file       = false
}

resource "kubernetes_namespace" "ns" {
  provider = kubernetes.my-kuber
  depends_on = [module.gke]

  Metadata {
    name = var.namespace
  }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。