Эта статья поможет вам установить и начать использовать 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-манифеста.
Использовать 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 <имя балансировщика нагрузки>
Вы получите ответ:
IP-адрес написан в колонке ADDRESS.