es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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í?

Tags:  , ,

Answer

  1. Avatar for 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í:

    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      name: mongoexpress-ingress
    spec:
      rules:
      - host: mylocalmongoexpress.com
        http:
          paths:
          - path: / # Agrega este campo
            pathType: Prefix # Agrega este campo
            backend:
              service:
                name: mongoexpress-service # Cambia serviceName por name
                port:
                  number: 8081 # Cambia servicePort por number
    

    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.

Comments are closed.