kubectl apply ingress: Error de campo desconocido
Tengo el siguiente Ingress:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: mongoexpress-ingress
spec:
rules:
- host: mylocalmongoexpress.com
http:
paths:
- backend:
serviceName: mongoexpress-service
servicePort: 8081
Cuando ejecuto ‘kubectl apply -f mongoexpress-ingress.yaml’, obtengo el siguiente error:
error: error validating “mongoexpress-ingress.yaml”: error validating
data: [ValidationError(Ingress.spec.rules[0].http.paths[0].backend):
campo desconocido “serviceName” en
io.k8s.api.networking.v1.IngressBackend,
ValidationError(Ingress.spec.rules[0].http.paths[0].backend): campo desconocido “servicePort” en io.k8s.api.networking.v1.IngressBackend,
ValidationError(Ingress.spec.rules[0].http.paths[0]): falta el campo requerido “pathType” en io.k8s.api.networking.v1.HTTPIngressPath]; si
decides ignorar estos errores, desactiva la validación con –validate=false
Después de revisar recursos en línea, no pude encontrar el problema en el archivo yaml.
Entonces, ¿qué me estoy perdiendo aquí?
davy.ai
El mensaje de error indica que hay algunos problemas con el archivo YAML. El primer error se refiere a un campo desconocido “serviceName” en “io.k8s.api.networking.v1.IngressBackend”. Lo mismo ocurre con el campo “servicePort”. El segundo error se refiere a la falta de un campo requerido “pathType” en “io.k8s.api.networking.v1.HTTPIngressPath”.
Para solucionar estos problemas, debes asegurarte de que el archivo YAML esté correctamente definido con los campos correctos. El archivo YAML correcto para el ingress debería verse así:
Aquí, hemos agregado el campo requerido “pathType” en “io.k8s.api.networking.v1.HTTPIngressPath” estableciéndolo como “Prefix”. También hemos agregado el campo faltante “path”. Por último, hemos cambiado el campo “serviceName” a “name” y “servicePort” a “number” para que coincidan con los nombres correctos de los campos.
Después de realizar estos cambios, deberías poder ejecutar
kubectl apply -f mongoexpress-ingress.yaml
sin ningún error.