Использование прокси-сервера при установке Nova Container Platform
В некоторых окружениях прямой доступ в сеть Интернет может быть закрыт и осуществляться только с использованием HTTP или HTTPS прокси-сервера. Вы можете указать параметры подключения к прокси-серверу в Nova Container Platform на этапе установки платформы независимо от метода развертывания.
1. Предварительные действия
Ознакомьтесь со списком Интернет-ресурсов, которые используются во время установки Nova Container Platform и определите, какие из ресурсов возможно исключить. По умолчанию весь трафик узлов платформы направляется через прокси-серверы, однако установка прокси-сервера не влияет на конечные пользовательские сервисы. При необходимости вы можете добавить исключения для ресурсов в параметр spec.noProxy
объекта Proxy.
При использовании прокси-сервера на узлах кластера автоматически добавляются следующие исключения noProxy
:
-
coreServer: Сервер управления Nova Universe при установке платформы в закрытом сетевом окружении.
-
k8sDefaultDnsZone: Корневой DNS-домен кластера Kubernetes.
-
k8sAPIDefaultFqdn: DNS-имя по умолчанию, используемое для доступа к серверу Kubernetes API.
-
k8sAPIAdditionalSANs: Список дополнительных DNS-имен и IP-адресов (Subject Alternative Name) Kubernetes API.
-
kubePodSubnet: Блок IP-адресов для подов Kubernetes (Pod).
-
kubeServiceAddresses: Блок IP-адресов для сервисной сети Kubernetes (Service Network).
-
dnsBaseDomain: Базовый DNS-домен для настройки и публикации служебных веб-сервисов через Ingress-контроллер.
-
.svc: Все ресурсы сервисов в служебном домене Kubernetes.
-
127.0.0.1: Локальный хост.
-
IP-адреса всех узлов платформы.
-
Хостовые имена всех узлов платформы.
2. Настройка параметров прокси-сервера
В Nova Container Platform параметры прокси-сервера управляются через объект Proxy в Kubernetes. Перед установкой платформы вы можете сгенерировать необходимые конфигурационные манифесты с помощью nova-ctl
.
По умолчанию nova-ctl
предоставляет манифест Proxy с пустой спецификацией spec
. Это означает, что прокси-сервер не будет использоваться при установке платформы. Пример данного манифеста представлен ниже.
apiVersion: config.nova-platform.io/v1alpha1
kind: Proxy
metadata:
name: cluster
spec: {}
Для того, чтобы задать необходимые параметры воспользуйтесь спецификацией конфигурационного API.
Пример подготовленного манифеста:
apiVersion: config.nova-platform.io/v1alpha1
kind: Proxy
metadata:
name: cluster
spec:
httpProxy:
server: "http://172.31.100.100"
port: 8080
username: "changeme"
password: "changeme"
httpsProxy:
server: "http://172.31.100.100"
port: 8080
username: "changeme"
password: "changeme"
noProxy: "hub.corp.internal,registry-1.corp.internal"
3. Настройка nova-ctl
При онлайн-установке платформы nova-ctl
обращается как к публичным ресурсам, так и внутренним ресурсам кластера. Поэтому, если вы запускаете контейнер с утилитой nova-ctl
в окружении, где требуется настройка прокси-сервера, вам необходимо установить исключения noProxy
, аналогичные тем, что устанавливаются на узлах кластера автоматически, а также добавить дополнительные исключения при необходимости.
Вы можете настроить nova-ctl
используя команды ниже.
Процедура
-
Запустите
nova-ctl
:$ docker run --rm -it -v $PWD:/opt/nova hub.nova-platform.io/public/nova/nova-ctl:v4.0.2
-
Установите переменные окружения с параметрами прокси-сервера в контейнере
nova-ctl
, например:export HTTP_PROXY=http://changeme:changeme@172.31.100.100:8080 export HTTPS_PROXY=http://changeme:changeme@172.31.100.100:8080 export NO_PROXY=.cluster.local,.svc,10.233.0.0/18,10.233.64.0/18