【问题标题】:How to assign a static ip address to an Kubernetes ingress using Terraform?如何使用 Terraform 为 Kubernetes 入口分配静态 IP 地址?
【发布时间】:2021-11-11 06:18:19
【问题描述】:

我一直在使用 kubernetes 入口配置文件来分配由 GCP 创建的静态外部 IP 地址。 入口和部署由 GKE 管理。

ingress.yaml

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: test-ingress
  annotations:
    kubernetes.io/ingress.global-static-ip-name: test-address
spec:
  backend:
    serviceName: test-service
    servicePort: 80

有了这个yaml文件,已经创建的静态ip地址成功附加到了入口。

在 VPC 网络菜单的外部 IP 地址上,该 ip 正被转发规则使用。

Name External Address Region Type Version In use by

test-address 12.34.56.78 asia-northeast2 Static IPv4 Forwarding rule k8s2-ab-blablablabla

但是,最近我尝试测试 Terraform 以将基础架构部署到 GCP,并且我制作了一个与上述 ingress.yaml 完全相同的 Terraform 配置文件。

ingress.tf

resource "kubernetes_ingress" "test_ingress" {
  metadata {
    name = "test-ingress"
    annotations = {
      "kubernetes.io/ingress.global-static-ip-name" = "test-address"
    }
  }
  spec {
    backend {
      service_name = test-service
      service_port = "80"
    }
  }
}

在我将此配置应用到 GCP 后,入口已成功创建,但 ip 地址未附加到入口。

在 GCP 的 Ingress 详细信息中,消息出现错误

Error syncing to GCP: error running load balancer syncing routine: loadbalancer blablablablabla does not exist: the given static IP name test-address doesn't translate to an existing static IP.

在 VPC 网络菜单的外部 IP 地址上,In use by 处的 IP 地址行显示None

这里有什么问题?我是否错过了 Terraform 的某些内容?

【问题讨论】:

  • 你能不能用output "load_balancer_ip" { value = kubernetes_ingress.test_ingress.status.0.load_balancer.0.ingress.0.ip }来检查哪个是IP(如果有)?
  • 您是否尝试在 Kubernetes 清单入口仍在使用静态 IP 地址时重用它?
  • @ydaetskcoR 不,我刚刚在 tf 文件 "google_compute_address" "server_address" { name = "server-address" address_type = "EXTERNAL" region = "asia-northeast2- c" network_tier = "PREMIUM" project = "test-project" }
  • 这可能是因为它需要是一个全球 IP 而不是一个区域 IP——这为我解决了这个问题

标签: kubernetes terraform kubernetes-ingress terraform-provider-gcp


【解决方案1】:

正如@MattBrowne 在 cmets 中所说,需要是全球 IP 而不是区域 IP。这也为我解决了。

【讨论】:

  • 谢谢!它工作正常!
猜你喜欢
  • 1970-01-01
  • 2021-10-15
  • 1970-01-01
  • 2021-12-01
  • 2021-06-15
  • 1970-01-01
  • 2018-08-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多