kind: Ingress
v1.19 (Aug 2020)
- https://kubernetes.io/docs/concepts/services-networking/ingress/
- https://kind.sigs.k8s.io/docs/user/ingress/
- https://docs.okd.io/latest/rest_api/network_apis/ingress-networking-k8s-io-v1.html
helm install my-release ingress-nginx/ingress-nginx
minikube addons enable ingress
- spec.rules.host
- rules: [ http: | hosts: ]
Official examples
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: minimal-ingress annotations: nginx.ingress.kubernetes.io/rewrite-target: / spec: ingressClassName: nginx-example rules: - http: paths: - path: /testpath pathType: Prefix backend: service: name: test port: number: 80
https://kind.sigs.k8s.io/docs/user/ingress/ apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: example-ingress annotations: nginx.ingress.kubernetes.io/rewrite-target: /$2 spec: rules: - http: paths: - pathType: Prefix path: /foo(/|$)(.*) backend: service: name: foo-service port: number: 8080 - pathType: Prefix path: /bar(/|$)(.*) backend: service: name: bar-service port: number: 8080
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: tls-example-ingress spec: tls: - hosts: - https-example.foo.com secretName: testsecret-tls rules: - host: https-example.foo.com http: paths: - path: / pathType: Prefix backend: service: name: service1 port: number: 80
Examples
with tls and issuer annotation for cert-manager
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: kuard annotations: cert-manager.io/issuer: "letsencrypt-staging" spec: ingressClassName: nginx tls: - hosts: - example.example.com secretName: quickstart-example-tls rules: - host: example.example.com http: paths: - path: / pathType: Prefix backend: service: name: kuard port: number: 80
With tls
apiVersion: networking.k8s.io/v1beta1 kind: Ingress metadata: annotations: kubernetes.io/ingress.class: nginx name: example namespace: foo spec: rules: - host: www.example.com http: paths: - backend: serviceName: exampleService servicePort: 80 path: / # This section is only required if TLS is to be enabled for the Ingress tls: - hosts: - www.example.com secretName: example-tls
.../... status: loadBalancer: ingress: - hostname: a324242432.elb.ap-southeast-1.amazonaws.com .../...
apiVersion: extensions/v1beta1 kind: Ingress metadata: name: foobar spec: rules: - host: foobar.example.com http: paths: - backend: serviceName: foo servicePort: 8080 path: /
Errors
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: annotations: kubernetes.io/ingress.class: nginx name: example namespace: foo spec: rules: - host: www.example.com http: paths: - backend: serviceName: exampleService servicePort: 80 path: /
Error from server (BadRequest): error when creating "ingress.yaml": [[Ingress in version "v1" cannot be handled as a Ingress: strict decoding error: unknown field "spec.rules [0].http.paths[0].backend.serviceName", unknown field "spec.rules[0].http.paths[0].backend.servicePort"
The Ingress "youingress" is invalid: spec.rules[0].http.paths[0].backend: Required value: port name or number is required
Warning AddedOrUpdatedWithWarning 3s nginx-ingress-controller Configuration for default/your-app was added or updated ; with warning(s): TLS secret your-app is invalid: secret doesn't exist or of an unsupported type
Errors
error: error validating "ingress.yaml": error validating data: [ValidationError(Ingress.spec.rules[0].http.paths[0].backend): unknown field "serviceName" in io.k8s.api.networking.v1.IngressBackend, ValidationError(Ingress.spec.rules[0].http.paths[0].backend): unknown field "servicePort" in io.k8s.api.networking.v1.IngressBackend]; if you choose to ignore these errors, turn validation off with --validate=false error: error parsing ingress.yaml: error converting YAML to JSON: yaml: line 16: mapping values are not allowed in this context The Ingress "youingress" is invalid: spec.rules[0].http.paths[0].backend: Required value: port name or number is required Warning Rejected 31s nginx-ingress-controller spec.rules(0).host: Required value
Related terms
- Kubernetes: Ingress controllers
kubectl get ingress, kubectl describe ingress
kind: ConfigMap
kind: IngressClass
pathType: ImplementationSpecific
field.cattle.io/publicEndpoints
cattle.io/creator: norman
.local
- Address:
kubectl apply -f ingress.yaml
- Ingress-nginx-controller ConfigMap
- IngressSpec.spec.tls
- acme.cert-manager.io/http01-edit-in-place: "true"
See also
kind: Ingress, nginx.ingress.kubernetes.io, networking.k8s.io/[v1Beta,v1 ], extensions/v1beta1, ingress.spec.rules, kubectl apply -f ingress.yaml, spec.tls, ingressClassName
networking.k8s.io: ingresses.networking.k8s.io, networkpolicy.networking.k8s.io
kubectl create ingress | kubectl get ingress
,kubectl describe ingress
, Kong, Kubernetes Gateway API, kubectl apply -f ingress.yaml- Ingress controllers, NGINX Ingress Controller,
minikube addons enable ingress
,kubectl get ingress, kubectl get ingressclass, kubectl describe ingress
,Ingress:
, Ingress API, AWS Load Balancer Controller, Envoy Proxy, GKE Ingress, Kubernetes Gateway API,ingress.k8s.aws, ingresses.networking.k8s.io
,kind: Ingress
: (tls:, hosts:
),SuccessfullyReconciled
Advertising: