我目前正在学习hashicorp的地形教程。我有一个K8S集群,我可以从我的机器访问它(~/.kube/config(。
我试着用创建一个小的tf文件
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生成这些证书。
从错误日志中,我可以看到问题似乎是您的集群无法访问:dial tcp 127.0.0.1:80: connect: connection refused
可能是因为
- 您没有在提供程序配置中指定主机参数(请参阅此处(,这是一个合理的假设,因为在您给出的第二个示例中,您的集群位于104.196.242.174,而不是127.0.0.1
- 有一些网络问题阻止您访问集群(如果您可以通过kubectl正确地发出命令,则情况可能并非如此(
关于证书身份验证,我想这取决于集群的构建/配置方式。关于最后一个问题,我会从下面的医生开始。