我试着用地形来部署库伯奈特入口。正如这里所描述的,链接和我自己的变体:
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" {
│
╵它的作用是:
库贝克尔应用-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需要一些关于如何利用地形来部署库伯奈特入口的想法。
发布于 2022-03-16 21:14:54
这里的问题是,YML中的示例是使用正确的API版本,即networking.k8s.io/v1,因此它可以工作,因为您可能有高于1.19的K8s版本。从该版本开始,Ingress是其中一部分的extensions/v1beta1在1.22中被废弃为networking.k8s.io/v1,因为您可以阅读这里。正因为如此,您当前的Terraform代码使用的是旧的K8s API版本。您可以在文档菜单的左边看到:

如果您深入了解文档,您将看到networking/v1和资源部分 kubernetes_ingress_v1。将Terraform中的代码更改为使用networking.k8s.io/v1中的in,如下所示:
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
}
}
}
}
}
}
}
}https://stackoverflow.com/questions/71499103
复制相似问题