Я тестировал это с двумя последними выпусками, и что я могу видеть на данный момент, нет службы, связанной с контроллером ingress- nginx (развернутым как аддон minikube).
Пожалуйста, посмотрите на порты в рамках развертывания ingress- nginx.
Включение развертывания надстройки ingress, созданное в пространстве имен kube-system с этим spe c:
...
spec:
containers:
- args:
- --report-node-internal-ip-address
...
ports:
- cotainerPort: 80
hostPort:80
name: http
protocol: TCP
- cotainerPort: 443
hostPort: 443
name: https
protocol: TCP
...
Похоже, что в текущей версии minikube ingress- nginx использует - hostPorts вместо nginx ingress службы nodeport. Самая важная информация - поддерживает ли ваш текущий сетевой плагин cni Port-mapping
Из официальных документов сетевой плагин CNI поддерживает hostPort
Сетевой плагин CNI поддерживает hostPort.
Вы можете проверить эти настройки внутри узла minikube:
minikube -p your_name ssh
cat /etc/cni/net.d/your_config
"type": "portmap",
"capabilities": {"portMappings": true},
Ограничения такие же, как для конфигурации hostNetwork: true
:
Одним из основных ограничений этого подхода к развертыванию является то, что на каждом узле кластера может быть запланирован только один NGINX Ingress-контроллер, поскольку привязка одного и того же порта несколько раз к одному и тому же сетевому интерфейсу технически невозможна
- report-node-internal-ip-address
, поскольку голые узлы обычно не имеют ExternalIP, необходимо включить параметр --report -node-internal-ip-address флаг, который устанавливает статус всех Ingress-объектов на внутренний IP-адрес всех узлов, на которых работает NGINX Ingress-контроллер.
Kubernetes ServiceTypes позволяют указать, какой вид службы вам нужен. по умолчанию - ClusterIP .
Значения типов и их поведение:
ClusterIP : предоставляет службу в кластере. -внутренний IP. Выбор этого значения делает Сервис доступным только изнутри кластера. Это ServiceType по умолчанию.
NodePort : предоставляет услугу на каждом IP-адресе узла на порту stati c (NodePort). Служба ClusterIP, к которой маршрутизируется служба NodePort, создается автоматически. Вы сможете связаться со службой NodePort извне кластера, запросив:.
LoadBalancer : предоставляет доступ к службе извне с помощью балансировщика нагрузки облачного провайдера. . Сервисы NodePort и ClusterIP, к которым автоматически создаются маршруты внешнего балансировщика нагрузки.
Специальное примечание для типа сервиса Loadbalancer
Когда Тип службы равен установлен на LoadBalancer , Kubernetes предоставляет функциональность, эквивалентную типу, равному ClusterIP, для модулей в кластере и расширяет его, запрограммировав (внешний по отношению к Kubernetes) балансировщик нагрузки. с записями для модулей Kubernetes. Контроллер службы Kubernetes автоматизирует создание внешнего балансировщика нагрузки, проверки работоспособности (при необходимости), правил брандмауэра (при необходимости), а также извлекает внешний IP-адрес, выделенный поставщиком облака, и помещает его в объект службы
В качестве обходного пути в вашей среде без операционной системы вы можете использовать MetalLB
MetalLB обеспечивает реализацию балансировщика сетевой нагрузки для Кластеры Kubernetes, которые не работают на поддерживаемом облачном провайдере, что позволяет эффективно использовать LoadBalancer Services в любом кластере.