Tiller:拨打 tcp 127.0.0.1:80:连接:连接被拒绝

问题描述 投票:0回答:4

从我升级了 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

kubernetes terraform kubernetes-helm terraform-provider-aws
4个回答
3
投票

这意味着您的

server:
中的
.kube_config.yml
条目指向错误的端口(甚至可能是错误的协议,因为正常的 kubernetes 通信通过
https
传输并通过相互 TLS 身份验证进行保护),或者不再存在曾经监听
localhost:80
的代理,或者可能
--insecure-port
曾经是
80
现在是
0
(强烈推荐)

遗憾的是,如果没有更多细节,没有人可以猜测正确的值是什么或应该更改为


1
投票

我确信需要在您的 terraform 配置上设置 Kubernetes 提供程序。 像这样的东西:

provider "kubernetes" { 
  config_path    = module.EKS_cluster.kubeconfig_filename
}

0
投票

当我错过配置带有集群的 terraform 的凭据并且无法访问集群时,就会发生这种情况。如果你配置你的 kubectl / 无论你使用什么来进行身份验证,这个问题应该可以解决。


0
投票

此外,当您在计算机上打开任何 VPN 时,有时也会发生这种情况。所以要解决这个问题,你必须检查你的浏览器上是否打开了VPN并尝试将其关闭

© www.soinside.com 2019 - 2024. All rights reserved.