Есть много способов показать приложение вашего кластера Kubernetes внешней сети. Вам просто нужно выбрать лучший для ваших нужд. NodePort, Ingress, LoadBalancer иClusterIP— четыре основных варианта.
Однако вэтом руководстве мырассмотрим контроллер входящего трафика. Kubernetes Ingress API позволяет вам раскрывать приложения вашего кластера Kubernetes вИнтернете, объединив рекомендации помаршрутизации водном источнике. Чтобы использовать Ingress, выдолжны настроить Ingress-контроллер всвоем кластере, который отвечает заобработку входящей информации оресурсах ивключение трафика наоснове входных правил. Давайте быстро рассмотрим, что такое Kubernetes Ingress ичто предлагает контроллер Ingress, прежде чем углубляться вмногочисленные контроллеры Ingress.
Kubernetes предлагает три формы обслуживания для предоставления определенных функций фреймворка:
ClusterIP: стандартный сервис Kubernetes— ClusterIP. Эта функция создается вкластере идоступна только через модули вэтом кластере. Итак, всякий раз, когда мыхотим раскрыть услугу другим модулям втомже кластере, мыиспользуем такую услугу. Прокси Kubernetes используется для управления этой службой.
NodePort: каждый узел ввашем кластере имеет открытый порт, называемый NodePort. Даже если ваша программа установлена на другом узле, Kubernetes напрямую направляет трафик, поступающий через NodePort, вприложение.
LoadBalancer: вKubernetes гораздо более простой формой балансировки нагрузки является распределение нагрузки, которое легко исправить наэтапе диспетчера. Kubernetes имеет два канала распределения нагрузки, оба изкоторых регулируются функцией Kube-proxy, которая обрабатывает виртуальные IP-адреса, используемые приложениями.
Несмотря нато, что Kubernetes был впервые выпущен виюне 2014года, Kubernetes Ingress API все еще находится встадии бета-тестирования, начиная сверсии 1.18Kubernetes. Ingress API сконцентрирован наадаптируемости иостается относительно компактным смомента его запуска встатус бета-версии в2016 году (Kubernetes v1.2).
Kubernetes Ingress— это объект API Kubernetes, который предлагает правила маршрутизации для управления доступом внешних пользователей кслужбам кластера Kubernetes, обычно через HTTPS/ HTTP. Выможете легко создать инструкции пораспространению трафика спомощью Ingress, несоздавая серию балансировщиков нагрузки или открывая каждую операцию наузле. Врезультате это правильный вариант для использования впроизводственных условиях.
Вэтом руководстве мыразработаем метод, спомощью которого выможете легко включить контроллер Ingress спомощью minikube.
- Предварительные условия
- Создать кластер Minikube
- Включение контроллера входящего трафика спомощью Minikube
- Заключение
Table of Contents
Предварительные условия
Чтобы включить контроллер Ingress ввашей системе, увас должен быть установлен кластер minikube. Кроме того, увас должны быть права sudo для доступа квашей системе.
Примечание : Мыработаем наUbuntu20.04LTS при написании данного руководства. Выможете использовать свою любимую операционную систему для реализации.
Создать кластер Minikube
Изначально вам нужно создать кластер minikube, чтобы включить контроллер Ingress вKubernetes. Для этой конкретной цели мыдолжны запустить терминал командной строки вUbuntu20.04LTS.
Выможете запустить окно терминала двумя простыми способами. Один изних— открыть его спомощью панели приложений вашей операционной системы. Другой вариант— использовать простейшую комбинацию клавиш «Ctrl + Alt + T».
Как только вывоспользуетесь любым изэтих методов, откроется терминал командной строки. Прежде всего, выдолжны запустить уже установленный кластер minikube ввашей операционной системе Ubuntu20.04LTS. Чтобы запустить minikube, запишите нижеприведенную команду воболочке командной строки.
$ minikube start
Вовремя выполнения этой команды вам нужно подождать несколько секунд, чтобы начать работу сminikube. После успешного выполнения команды вытакже можете проверить отображаемую версию minikube. После выполнения этого шага выможете проверить статус мини-куба, выполнив указанную команду втерминале.
$ minikube status
Изпоказанного выше изображения выможете проверить, что хост, kubelet иapiserver работают.
Включение контроллера входящего трафика спомощью Minikube
Как только вызапустите миникуб, выготовы включить Ingress-контроллер. Если выхотите проверить список дополнений мини-куба, выдолжны запустить втерминале следующую команду:
$ minikube addons list
После выполнения этой команды выувидите статус каждого дополнения minikube. Некоторые изних включены, анекоторые отключены. Теперь самое время включить контроллер Ingress спомощью minikube. Итак, для этой конкретной цели выдолжны написать следующую команду вокне терминала.
$ minikube addons enable ingress
Поскольку вэтой команде есть ключевое слово «enable», она включает контроллер Ingress вKubernetes.
После выполнения этой команды выможете увидеть, что «Входящий модуль включен». Если выхотите вэтом убедиться, выможете выполнить втерминале указанную ниже команду сфлагом —n.
Выможете видеть, что теперь статус работает.
Заключение
Если заглянуть дальше, контроллер Ingress — это программа Kubernetes. Которая настраивает балансировщик нагрузки HTTP на основе ресурсов Ingress. Для нескольких балансировщиков нагрузки обязательно требуются различные приложения контроллера Ingress. В вышеупомянутой статье мы объяснили концепцию контроллера Ingress в Kubernetes. Также мы разработали шаги по включению Ingress с помощью minikube. Я считаю, что после прочтения этой статьи у вас не останется никаких сомнений относительно контроллера Ingress в Kubernetes.