Istio Ingress Control
Istio implements the Kubernetes ingress resource to expose a service and make it accessible from outside the cluster.
Note | The general recommendation is to use Istio gateway, and virtual service resources to allow a more complete control over the traffic. That content is covered in the traffic management section. |
Ingress
The Kubernetes ingress resource has a set of rules to match the incoming HTTP traffic to route the request to a back-end service. Each rule matches a DNS name and a set of paths to forward the traffic to a back-end service.
The ingress resource has the following fields on the YAML manifest.
rules
List of rules to match against incoming HTTP traffic.
host
List of host names to match the HTTP traffic. The host can be set to a specific DNS name, wildcards such as
*.example.com
are supported, and it can be defined as'*'
to match all hostnames.paths
List of URL paths that are matched against HTTP requests.
pathType
The value
Exact
matches the provided path as is.The value
Prefix
matches the provided path if it begins with the specified prefix.
backend
Specifies the service that receives the traffic.
The following code listing is an example of an ingress resource manifest.
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: kubernetes-dashboard
namespace: kubernetes-dashboard
annotations:
kubernetes.io/ingress.class: istio # (1)
spec:
rules: # (2)
- host: dashboard.192.168.59.20.nip.io # (3)
http:
paths: # (4)
- path: /
pathType: Prefix # (5)
backend: # (6)
service:
name: kubernetes-dashboard
port:
number: 80
Specifies that Istio handles this ingress resource.
Set of rules to be applied against incoming HTTP traffic.
DNS host name where the ingress serves traffic.
List of paths to match HTTP traffic.
Type of match that should be applied to the path.
Back-end service name and port number.
Ingress Class
The annotation is required to tell the Istio gateway controller that it should handle this ingress resource, otherwise is ignored.
metadata:
annotations:
kubernetes.io/ingress.class: istio
Note | The
|