0

我目前正在阅读 hashcorp 的 terraform 教程。我有一个 K8S 集群,我可以从我的机器 (~/.kube/config) 访问它。

我试图用

  provider "kubernetes" {}

但是当我跑步时

terraform apply

我收到这个错误

Error: Error applying plan:

1 error(s) occurred:

* kubernetes_pod.nginx: 1 error(s) occurred:

* kubernetes_pod.nginx: Post "http://localhost/api/v1/namespaces/default/pods": dial tcp 127.0.0.1:80: connect: connection refused

我还尝试指定我的 k8s 配置的路径

load_config_file = "true"
config_path = "~/.kube/config"

但我有同样的问题

我还想通过指定证书进行连接:

provider "kubernetes" {
  host = "https://104.196.242.174"

  client_certificate     = file("~/.kube/client-cert.pem")
  client_key             = file("~/.kube/client-key.pem")
  cluster_ca_certificate = file("~/.kube/cluster-ca-cert.pem")

  load_config_file = false # when you wish not to load the local config file
}

但我找不到如何从 .kube/config 或直接使用 kubectl 生成这些证书。

4

1 回答 1

0

从错误日志中我可以看到问题似乎是您的集群无法访问:dial tcp 127.0.0.1:80: connect: connection refused
可能是因为

  • 您没有在提供程序配置中指定主机参数(请参见此处),这是一个合理的假设,因为您给集群的第二个示例位于104.196.242.174,而不是127.0.0.1
  • 有一些网络问题阻止您访问集群(如果您可以通过 kubectl 正确发出命令,则可能不是这种情况)

关于使用证书的身份验证,我想这取决于您的集群是如何构建/配置的。我会从以下关于最后一个问题的文档开始。

于 2020-11-28T14:57:36.743 回答