Моя цель - получить доступ к определенной службе Kubernetes, развернутой на моей машине (кластере), с машины вне кластера (другой машины). Я выставляю эти сервисы с помощью объектов "Ingress". У меня есть кластер с одним узлом kubernetes, на котором я установил контроллер nginx-ingress, внешний IP-адрес для него назначается балансировщиком нагрузки Metal-LB.
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 2d
nginx LoadBalancer 10.105.168.2 192.168.1.240 8080:32622/TCP 46h
Я могу получить доступ к балансировщику нагрузки на моем компьютере, используя созданный таким образом external-ip. Но не может получить доступ к этому вне кластера (машины) / с другой машины, используя внешний IP-адрес. Использование внешнего IP-адреса на другом компьютере приводит к ошибке тайм-аута соединения.
nginx ingress-controller установлен из kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/nginx-0.22.0/deploy/mandatory.yaml и представлен как тип балансировщика нагрузки.
Конфигурация для Metallb представлена ниже:
apiVersion: v1
kind: ConfigMap
metadata:
namespace: metallb-system
name: config
data:
config: |
address-pools:
- name: default
protocol: layer2
addresses:
- 192.168.1.240/28
PS: обе машины находятся в одной сети.