从我升级了 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
这意味着您的
server:
中的 .kube_config.yml
条目指向错误的端口(甚至可能是错误的协议,因为正常的 kubernetes 通信通过 https
传输并通过相互 TLS 身份验证进行保护),或者不再存在曾经监听 localhost:80
的代理,或者可能 --insecure-port
曾经是 80
现在是 0
(强烈推荐)
遗憾的是,如果没有更多细节,没有人可以猜测正确的值是什么或应该更改为
我确信需要在您的 terraform 配置上设置 Kubernetes 提供程序。 像这样的东西:
provider "kubernetes" {
config_path = module.EKS_cluster.kubeconfig_filename
}
当我错过配置带有集群的 terraform 的凭据并且无法访问集群时,就会发生这种情况。如果你配置你的 kubectl / 无论你使用什么来进行身份验证,这个问题应该可以解决。
此外,当您在计算机上打开任何 VPN 时,有时也会发生这种情况。所以要解决这个问题,你必须检查你的浏览器上是否打开了VPN并尝试将其关闭