Registry Proxy
Поддержка registry proxy дает возможность настроить проксирование реестра образов, что позволит настроить работу в
air-gapped среде или использовать локальный менеджер репозиториев, с контролем загрузки и кэшированием, для
ускорения доступа к реестру, обхода лимитов и повышения отказоустойчивости.
Заметка
Проксирование работает только на получение образов (pull).
Обзор
Проксирование реестра поддерживается для всех типов кластеров и включает в себя формирование правильного файла конфигурации сервиса containerd - этот файл конфигурации генерируется в процессе установки и попадает на узлы кластера через cloudinit.
Для baremetal кластеров проксирование также используется при первоначальной инсталляции хоста, когда будущий узел получает специальный инсталляционный скрипт для загрузки bootstrap образа.
Дополнительно, проксирование учитывается в момент инсталляции кластера через bootsmanctl для проверки существования необходимых образов.
Идея состоит в том, что оригинальные адреса образов не меняются, при этом в конфиге bootsmanctl можно указать адрес хоста прокси.
Адрес хоста прокси указывается по аналогии с полем path и не должен содержать схему. Адрес может опционально содержать порт.
Поле называется proxy и является опциональным. Если поле не указано, установка выполняется по стандартной схеме, используя прямой доступ к реестру, указанному в конфигурации или используемому по умолчанию.
Заметка
Если поле proxy указано, то поля username и password считаются относящимися к прокси.
При этом схема прокси регулируется полем insecure (https:// для insecure=false и http:// для insecure=true).
Дополнительно, параметры прокси, как и остальные параметры реестра образов, прописываются в provisioning cluster, в поле capiConfig/registry/credentialsSecret.
Значение поля proxyKey используется как ключ для получения имени хоста прокси из соответсвующего секрета registrycreds-<cluster_name> - это поле является опциональным и может отсутствовать.
Важно
Смена прокси для уже развернутого кластера в настоящее время не поддерживается.
Для смены адреса прокси или логина/пароля необходимо изменение конфигурации containerd на всех узлах кластера.
Важно
Прокси поддерживает только базовую аутентификацию через пару логина/пароль.
Атентификация может отсутствовать - в конфигурации bootsmanctl или секрете provisioning cluster должны быть указаны соотв. ключи или поля с пустыми значениями, наряду с адресом прокси.
Пример конфигурации
Пример конфигурации bootsmanctl
kubernetesVersion: "v1.33.5"
registry:
proxy: nexus-dev.bootsman.site:8443
username: admin
password: *******************
path: harbor.bootsman.host/bootsman-nimbus/common-artifacts
insecure: False
wait:
clusterCtlTimeout: 40m0s
operationTimeout: 50m0s
operationRetryInterval: 15s
objCreateTimeout: 4m0s
objCreateInterval: 5s
addonHelmTimeout: 15m
infrastructure:
clusterNetwork:
podCidrBlocks: ["172.20.0.0/16"]
servicesCidrBlocks: ["172.21.0.0/16"]
baremetalProxy:
currentIp: 10.0.xxx.xxx
currentPort: 6443
controlPlane:
endpoint:
host: 10.0.xxx.xxx
port: 6443
replicas: 3
label: master
kubeletExtraArgs: {}
workerPool:
replicas: 3
label: worker
kubeletExtraArgs: {}
web:
bootstrapPassword: *******************
hostname: rancher.bootsman.site