从我升级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
答案 0 :(得分:1)
这意味着您server:
中的.kube_config.yml
条目指向错误的端口(甚至可能是错误的协议,因为正常的kubernetes通信通过https
传输并通过相互TLS进行保护身份验证),或者不再有正在监听localhost:80
的 代理,或者也许以前是80
的{{3}}现在是{{1} }(强烈建议)
令人遗憾的是,没有更多细节,没有人能猜测什么是正确的值,或者应该将正确的值更改为
答案 1 :(得分:0)
当我错过了使用集群配置 terraform 的凭据并且无法访问集群时,这发生在我身上。如果您配置了您的 kubectl / 用于身份验证的内容,则应该可以解决此问题。