Как настроить доступ к контейнеру из интернета?

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

  1. NodePort — открывает нужный порт на каждом Node-узле кластера. В этом случае нужно открыть доступ к созданному порту в группе безопасности, подключенной к кластеру. Это можно сделать в панели Horizon, в разделе «Сети» — «Группы безопасности». Смотрите статью «Как открыть порты?»

  2. ClusterIP — подходит для работы с сервисом Kubeproxy, но не позволяет получить доступ к сервису произвольному пользователю.

  3. LoadBalancer — создает выделенный TCP-балансировщик OpenStack с публичным IPv4-адресом. На каждый LoadBalancer в Kubernetes будет создан новый балансировщик OpenStack и выделен новый публичный IP-адрес. Создание LoadBalancer позволяет не настраивать группы безопасности в панели Horizon.

  4. Ingress — использует только один выделенный балансировщик нагрузки OpenStack. Доступ через Ingress позволяет использовать один и тот же внешний IP, сделать domain-based и path-based routing. То есть можно настроить работу с несколькими доменами. 

    Доступ через Ingress реализован на базе балансировщика Nginx-ingress-controller. Кроме того, Ingress поддерживает веб-консоль мониторинга запросов. Встроенный Ingress-Controller не только поддерживает работу с загруженными SSL-сертификатами, но и может генерировать и автоматически перевыпускать сертификаты Let’s Encrypt.

Терминация SSL-трафика может происходить как на уровне конечного приложения (NodePort, ClusterIP и LoadBalancer), так и на уровне самого Kubernetes (Ingress Controller).