Ingress and Ingress Controller
Ingress - Kubernetes object that defines rules for external traffic routing, load balancing, and SSL termination. Ingress Controller is a proxy server in a Managed Kubernetes cluster and routes traffic based on the rules that are defined in Ingress.
In Managed Kubernetes, the Ingress Controller is not pre-installed in the cluster; you must install it yourself. The choice of controller depends on the requirements of the applications hosted in the Managed Kubernetes cluster. For a list of possible controllers, see the Ingress Controllers instruction in the Kubernetes documentation.
We will look at installing the Ingress Controller Traefik using Helm chart.

Install Ingress Controller Traefik
A load balancer with a public IP address will be automatically created with the Ingress Controller. By default, a load balancer of type Basic with redundancy is created, but you can choose the type of load balancer and configure other parameters for it - see the Configure a Load Balancer instructions for more information on load balancer parameters . The load balancer will be the entry point for accessing applications in the cluster, so you do not need to create an additional internal load balancer.
Without load balancer configuration
With load balancer configuration
-
Ensure that the pool has a quota of at least one public IP address allocated.
-
Add the
traefikrepository to Helm:helm repo add traefik https://traefik.github.io/charts -
Update the list of repositories:
helm repo update -
Install the Ingress Controller:
helm install traefik traefik/traefik -
Make sure the Ingress Controller is installed:
kubectl get podsIngress Controller information will appear in the response:
NAME READY STATUS RESTARTS AGE
traefik-78d5c6f95b-2xk9p 1/1 Running 0 51sA new load balancer will be created. It will appear in the Control Panel: in the top menu, click Products and select Cloud Servers → Balancers section → Balancers tab.
-
Ensure that the pool has a quota of at least one public IP address allocated.
-
Add the
traefikrepository to Helm:helm repo add traefik https://traefik.github.io/charts -
Get the default values and save them to the
values.yamlfile:helm inspect values traefik/traefik > values.yaml -
In the
annotationsblock of thevalues.yamlfile, add the necessary parameters for the load balancer - for more information about load balancer parameters, see the Configure Load Balancer instruction.For example, if the load balancer needs to allocate a private IP address instead of the public IP address that is assigned by default, add the annotation
service.beta.kubernetes.io/openstack-internal-load-balancer: "true".Manifest fragment with
annotationsblock:apiVersion: v1
kind: Service
metadata:
annotations:
meta.helm.sh/release-name: traefik
meta.helm.sh/release-namespace: default
service.beta.kubernetes.io/openstack-internal-load-balancer: "true" -
Save your changes.
-
Install the Ingress Controller:
helm install traefik traefik/traefik --generate-name -f values.yaml -
Make sure the Ingress Controller is installed:
kubectl get podsIngress Controller information will appear in the response:
NAME READY STATUS RESTARTS AGE
traefik-78d5c6f95b-2xk9p 1/1 Running 0 51sA new load balancer will be created. It will appear in the Control Panel: in the top menu, click Products and select Cloud Servers → Balancers section → Balancers tab.
Create Ingress
Manifesto example:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: minimal-ingress
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- http:
paths:
- path: /testpath
pathType: Prefix
backend:
service:
name: test
port:
number: 80