我使用 Terraform ( link ) 启动了 GKE 集群,现在我尝试在集群上发布 Helm 图表,并尝试了“Nginx Ingress”Helm 图表,如下所示:
resource "helm_release" "ingress" {
name = "ingress"
repository = "https://kubernetes.github.io/ingress-nginx"
chart = "ingress-nginx"
}
地形计划:
Terraform will perform the following actions:
# helm_release.ingress will be created
+ resource "helm_release" "ingress" {
+ chart = "ingress-nginx"
+ disable_webhooks = false
+ force_update = false
+ id = (known after apply)
+ metadata = (known after apply)
+ name = "ingress"
+ namespace = "default"
+ recreate_pods = false
+ repository = "https://kubernetes.github.io/ingress-nginx"
+ reuse = false
+ reuse_values = false
+ status = "DEPLOYED"
+ timeout = 300
+ verify = false
+ version = "2.3.0"
+ wait = true
}
但我收到错误
Error: Kubernetes cluster unreachable: Get https://35.232.164.12/version?timeout=32s: dial tcp 35.232.164.12:443: i/o timeout
on helm.tf line 36, in resource "helm_release" "ingress":
36: resource "helm_release" "ingress" {
最佳答案
这里 terraform 无法创建与 Kubernetes 集群的连接。集群无法访问。
此外,使用 terraform 还必须首先设置耕耘机,然后 Helm chart 才能工作。
在 terraform 中,您可以使用 helm
提供程序,如果使用服务帐户,您可以添加现有帐户或根据需要创建一个帐户
provider "helm" {
service_account = "${kubernetes_service_account.helm_account.metadata.0.name}"
tiller_image = "gcr.io/kubernetes-helm/tiller:${var.helm_version}"
#install_tiller = false
kubernetes {
host = "${google_container_cluster.<name>.endpoint}"
token = "${data.google_client_config.current.access_token}"
client_certificate = "${base64decode(google_container_cluster.data-dome-cluster.master_auth.0.client_certificate)}"
client_key = "${base64decode(google_container_cluster.data-dome-cluster.master_auth.0.client_key)}"
cluster_ca_certificate = "${base64decode(google_container_cluster.data-dome-cluster.master_auth.0.cluster_ca_certificate)}"
}
一个 helm
开始运行,您可以使用 helm 包管理器开始设置其他版本。
您还可以查看此答案以获取更多详细信息:Deploying Helm workloads with Terraform on GKE cluster
关于kubernetes - 无法在 Terraform 中部署 Helm Chart(Kubernetes 集群无法访问),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62038714/