Difference between revisions of "Kind: Ingress"
Jump to navigation
Jump to search
(→AKS) |
|||
(25 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
{{lowercase}} | {{lowercase}} | ||
− | [[v1.19]] (Aug 2020) | + | [[v1.19]] (Aug 2020, as of Jul 2024 has been superseded by <code>[[kind: Gateway]]</code>) |
* https://kubernetes.io/docs/concepts/services-networking/ingress/ | * https://kubernetes.io/docs/concepts/services-networking/ingress/ | ||
Line 7: | Line 7: | ||
* <code>[[helm install my-release ingress-nginx/ingress-nginx]]</code> | * <code>[[helm install my-release ingress-nginx/ingress-nginx]]</code> | ||
* <code>[[minikube addons enable ingress]]</code> | * <code>[[minikube addons enable ingress]]</code> | ||
− | * [[spec.rules.host]] | + | * <code>[[spec.rules.host]]</code> |
− | * rules: [ [[http:]] | [[hosts:]] ] | + | * <code>rules: [ [[http:]] | [[hosts:]] ]</code> |
+ | |||
+ | * <code>[[acme.cert-manager.io/http01-edit-in-place]]: "true"</code> | ||
== Official examples == | == Official examples == | ||
Line 14: | Line 16: | ||
https://kind.sigs.k8s.io/docs/user/ingress/ | https://kind.sigs.k8s.io/docs/user/ingress/ | ||
− | apiVersion: networking.k8s.io/v1 | + | apiVersion: [[networking.k8s.io/v1]] |
kind: Ingress | kind: Ingress | ||
metadata: | metadata: | ||
Line 27: | Line 29: | ||
path: /foo(/|$)(.*) | path: /foo(/|$)(.*) | ||
backend: | backend: | ||
− | service: | + | [[service:]] |
name: foo-service | name: foo-service | ||
port: | port: | ||
Line 38: | Line 40: | ||
port: | port: | ||
number: 8080 | number: 8080 | ||
+ | |||
+ | [[TLS]] | ||
+ | |||
+ | {{kind: ingress tls official}} | ||
== Examples == | == Examples == | ||
− | + | === with tls and issuer annotation for [[cert-manager]] === | |
− | kind: Ingress | + | |
− | + | {{kind: Ingress tls and annotation}} | |
− | + | ||
− | + | === With tls === | |
− | + | {{kind: ingress tls}} | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
Line 85: | Line 76: | ||
path: / | path: / | ||
+ | |||
+ | === [[AKS]] === | ||
+ | {{webapprouting.kubernetes.azure.com ex}} | ||
== Errors == | == Errors == | ||
Line 107: | Line 101: | ||
The Ingress "youingress" is invalid: [[spec.rules]][0].http.paths[0].backend: Required value: port name or number is required | 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 == | == Errors == | ||
Line 120: | Line 116: | ||
* <code>[[cattle.io/creator: norman]]</code> | * <code>[[cattle.io/creator: norman]]</code> | ||
* <code>[[.local]]</code> | * <code>[[.local]]</code> | ||
− | * [[Address:]] | + | * <code>[[Address:]]</code> |
* <code>[[kubectl apply -f ingress.yaml]]</code> | * <code>[[kubectl apply -f ingress.yaml]]</code> | ||
− | * [[Ingress-nginx-controller ConfigMap]] | + | * <code>[[Ingress-nginx-controller ConfigMap]]</code> |
− | * [[IngressSpec.spec.tls]] | + | * <code>[[IngressSpec.spec.tls]]</code> |
+ | * <code>[[labels:]]</code> | ||
+ | * <code>[[kubectl expose deployment]]</code> | ||
== See also == | == See also == |
Latest revision as of 06:25, 23 July 2024
v1.19 (Aug 2020, as of Jul 2024 has been superseded by kind: Gateway
)
- 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: ]
Contents
Official examples[edit]
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[edit]
with tls and issuer annotation for cert-manager[edit]
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[edit]
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: /
AKS[edit]
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: aks-helloworld namespace: hello-web-app-routing spec: ingressClassName: webapprouting.kubernetes.azure.com rules: - host: <Hostname> http: paths: - backend: service: name: aks-helloworld port: number: 80 path: / pathType: Prefix
Errors[edit]
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[edit]
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[edit]
- 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
labels:
kubectl expose deployment
See also[edit]
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: