Настроить ingress-контроллер nginx

Последние изменения: 19.04.2023

Установить контроллер

Использовать контроллер

Посмотреть IP-адрес

Эта статья поможет вам установить и начать использовать ingress-контроллер nginx. В статье «Установить ingress-контроллер EdgeЦентр» описаны Kubernetes-сервисы, ingress и ingress-контроллеры.

Наша система автоматически создаёт балансировщик нагрузки после создания ingress-контроллера nginx. Трафик проходит через балансировщик нагрузки, который затем отправляет его на ingress-контроллер nginx. Далее контроллер распределяет трафик по сервисам вашего кластера в соответствии с правилами в ingress-манифестах.

Установить ingress-контроллер nginx

1. Выполните команду, чтобы создать пространство имён для ingress-контроллера nginx:

kubectl create namespace ingress-nginx

2. Выполните команду, чтобы добавить helm-репозиторий для ingress-контроллера nginx:

helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx

3. Выполните команду, чтобы обновить данные helm-репозитория:

helm repo update

4. Выполните команду, чтобы установить контроллер:

helm install ingress-nginx ingress-nginx/ingress-nginx  \
--namespace ingress-nginx \
--set controller.ingressClassResource.name=nginx \
--set controller.ingressClassResource.controllerValue="example.com/ingress-nginx" \
--set controller.ingressClassResource.enabled=true \
--set controller.ingressClassByName=true \
--set controller.hostNetwork=true

Вы установили ingress-контроллер nginx. После этого автоматически будет создан балансировщик нагрузки. Он появится в личном кабинете — в разделе СетиБалансировщики нагрузки. Трафик будет приходить на ingress-контроллер через этот балансировщик нагрузки. Контроллер можно использовать после применения ingress-манифеста.

44df3f2294efa5e7265e31b92e91fe6f.png

Использовать ingress-контроллер nginx

1. Для создания ingress-объекта подготовьте YAML-файл в кодовом или текстовом редакторе:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: hello-world
spec:
  ingressClassName: nginx
   rules:
   - http:
      paths:
      - path: /about
        backend:
          serviceName: hello-world-about
          servicePort: 80
      - path: /login
        backend:
          serviceName: hello-world-login
          servicePort: 80

где:
hello-world — имя Ingress-объекта,
/about — URL-путь,
hello-world-about — имя сервиса, который будет обрабатывать запросы по пути /about,
80 — порт сервиса, который будет обрабатывать запросы по пути /about,
/login — URL-путь,
hello-world-login — имя сервиса, который будет обрабатывать запросы по пути /login,
80 — порт сервиса, который будет обрабатывать запросы по пути /login.

Важно! В YAML-файле необходимо указать параметр «ingressClassName: nginx» в атрибутах «spec».

2. Выполните команду:

kubectl apply -f <имя YAML-файла>

Вы получите ответ:

Ingress/<имя созданного ingress-объекта> created

Вы успешно создали и применили ingress-объект для ingress-контроллера nginx.

Посмотреть IP-адрес созданного балансировщика нагрузки

Для того, чтобы посмотреть IP-адрес балансировщика нагрузки, через который проходит трафик, перейдите в раздел Балансировщики нагрузки в личном кабинете или выполните команду:

kubectl get ingress <имя балансировщика нагрузки>

Вы получите ответ:

3ea641cf8c59252993ef9cc807e7ba8d.png

IP-адрес написан в колонке ADDRESS.

Помогла ли вам статья?