簡體   English   中英

使用 terraform 部署 kube.netes ingress

[英]deploy kubernetes ingress with terraform

我正在嘗試使用 terraform 部署 kube.netes ingress。如此處所述鏈接和我自己的變體:

resource "kubernetes_ingress" "node" {
  metadata {
    name = "node"
  }
  spec {
    ingress_class_name = "nginx"
    rule {
      host = "backend.io"
      http {
        path {
          path = "/"
          backend {
            service_name = kubernetes_service.node.metadata.0.name
            service_port = 3000
          }
        }
      }
    }
  }
}

錯誤:

╷
│ Error: Failed to create Ingress 'default/node' because: the server could not find the requested resource (post ingresses.extensions)
│ 
│   with kubernetes_ingress.node,
│   on node.tf line 86, in resource "kubernetes_ingress" "node":
│   86: resource "kubernetes_ingress" "node" {
│ 
╵

有用:

kubectl apply -f file_below.yaml

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: node
spec:
  ingressClassName: nginx
  rules:
  - host: backend.io
    http:
      paths:
      - path: /
        pathType: ImplementationSpecific
        backend:
            service:
              name: node
              port:
               number: 3000

需要一些關於如何使用 terraform 部署 kube.netes ingress 的想法。

這里的問題是 YML 中的示例使用的是正確的 API 版本,即networking.k8s.io/v1 ,因此它可以工作,因為您的 K8s 版本可能高於 1.19。 它從那個版本開始可用,Ingress 所屬的extensions/v1beta1在 1.22 中被棄用,取而代之的是networking.k8s.io/v1 ,你可以在這里閱讀。 在這種情況下,您當前的 Terraform 代碼正在為 Ingress 使用舊的 K8s API 版本。 您可以在文檔菜單的左側看到:

擴展v1beta1

如果您進一步查看文檔,您將看到networking/v1資源部分kube.netes_ingress_v1 將 Terraform 中的代碼更改為使用來自networking.k8s.io/v1的 Ingress,它變為:

resource "kubernetes_ingress_v1" "node" {
  metadata {
    name = "node"
  }

  spec {
    ingress_class_name = "nginx"
    rule {
      host = "backend.io"
      http {
        path {
          path = "/*"
          path_type = "ImplementationSpecific"
          backend {
            service {
              name = kubernetes_service.node.metadata.0.name
              port {
                number = 3000
              }
            }
          }
        }
      }
    }
  }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM