分iller:拨叫tcp 127.0.0.1:80:连接:连接被拒绝

时间:2019-10-24 16:45:27

标签: kubernetes terraform kubernetes-helm terraform-provider-aws

从我升级eks terraform脚本的版本开始。我不断出错又出错。

当前,我被卡在此错误上:

  

错误:获取http://localhost/api/v1/namespaces/kube-system/serviceaccounts/tiller:拨打TCP 127.0.0.1:80:连接:连接被拒绝

     

错误:获取http://localhost/apis/rbac.authorization.k8s.io/v1/clusterrolebindings/tiller:拨打TCP 127.0.0.1:80:连接:连接被拒绝

脚本运行正常,我仍然可以在旧版本中使用此脚本,但是我正在尝试升级群集版本。

provider.tf

provider "aws" {
  region  = "${var.region}"
  version = "~> 2.0"

  assume_role {
    role_arn = "arn:aws:iam::${var.target_account_id}:role/terraform"
  }
}

provider "kubernetes" {
  config_path = ".kube_config.yaml"
  version = "~> 1.9"
}

provider "helm" {
  service_account = "${kubernetes_service_account.tiller.metadata.0.name}"
  namespace       = "${kubernetes_service_account.tiller.metadata.0.namespace}"


  kubernetes {
    config_path = ".kube_config.yaml"
  }
}

terraform {
  backend "s3" {

  }
}

data "terraform_remote_state" "state" {
  backend = "s3"
  config = {
    bucket         = "${var.backend_config_bucket}"
    region         = "${var.backend_config_bucket_region}"
    key            = "${var.name}/${var.backend_config_tfstate_file_key}" # var.name == CLIENT
    role_arn       = "${var.backend_config_role_arn}"
    skip_region_validation = true
    dynamodb_table = "terraform_locks"
    encrypt        = "true"
  }
}

kubernetes.tf

resource "kubernetes_service_account" "tiller" {
  #depends_on = ["module.eks"]

  metadata {
    name      = "tiller"
    namespace = "kube-system"
  }

  automount_service_account_token = "true"
}

resource "kubernetes_cluster_role_binding" "tiller" {
  depends_on = ["module.eks"]

  metadata {
    name = "tiller"
  }

  role_ref {
    api_group = "rbac.authorization.k8s.io"
    kind      = "ClusterRole"
    name      = "cluster-admin"
  }

  subject {
    kind = "ServiceAccount"
    name = "tiller"

    api_group = ""
    namespace = "kube-system"
  }
}

地形版本:0.12.12 eks模块版本:6.0.2

2 个答案:

答案 0 :(得分:1)

这意味着您server:中的.kube_config.yml条目指向错误的端口(甚至可能是错误的协议,因为正常的kubernetes通信通过https传输并通过相互TLS进行保护身份验证),或者不再有正在监听localhost:80 代理,或者也许以前是80的{​​{3}}现在是{{1} }(强烈建议)

令人遗憾的是,没有更多细节,没有人能猜测什么是正确的值,或者应该将正确的值更改为

答案 1 :(得分:0)

当我错过了使用集群配置 terraform 的凭据并且无法访问集群时,这发生在我身上。如果您配置了您的 kubectl / 用于身份验证的内容,则应该可以解决此问题。