Использование прокси-сервера при установке 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-адресов для pod’ов Kubernetes.
-
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:v6.1.0 -
Установите переменные окружения с параметрами прокси-сервера в контейнере
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