Использование registries, отличных от registry.deckhouse.io
и registry.deckhouse.ru
, доступно только в коммерческих редакциях Deckhouse Kubernetes Platform.
Для переключения кластера на использование стороннего registry выполните следующие действия:
-
Выполните команду
deckhouse-controller helper change-registry
из пода DKP с параметрами нового registry. Пример запуска:d8 k -n d8-system exec -ti svc/deckhouse-leader -c deckhouse -- deckhouse-controller helper change-registry --user MY-USER --password MY-PASSWORD registry.example.com/deckhouse/ee
-
Если registry использует самоподписанные сертификаты, положите корневой сертификат соответствующего сертификата registry в файл
/tmp/ca.crt
в поде DKP и добавьте к вызову опцию--ca-file /tmp/ca.crt
или вставьте содержимое CA в переменную, как в примере ниже:CA_CONTENT=$(cat <<EOF -----BEGIN CERTIFICATE----- CERTIFICATE -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- CERTIFICATE -----END CERTIFICATE----- EOF ) d8 k -n d8-system exec svc/deckhouse-leader -c deckhouse -- bash -c "echo '$CA_CONTENT' > /tmp/ca.crt && deckhouse-controller helper change-registry --ca-file /tmp/ca.crt --user MY-USER --password MY-PASSWORD registry.example.com/deckhouse/ee"
Просмотреть список доступных ключей команды
deckhouse-controller helper change-registry
можно, выполнив следующую команду:d8 k -n d8-system exec -ti svc/deckhouse-leader -c deckhouse -- deckhouse-controller helper change-registry --help
Пример вывода:
usage: deckhouse-controller helper change-registry [<flags>] <new-registry> Change registry for deckhouse images. Flags: --help Show context-sensitive help (also try --help-long and --help-man). --user=USER User with pull access to registry. --password=PASSWORD Password/token for registry user. --ca-file=CA-FILE Path to registry CA. --scheme=SCHEME Used scheme while connecting to registry, http or https. --dry-run Don't change deckhouse resources, only print them. --new-deckhouse-tag=NEW-DECKHOUSE-TAG New tag that will be used for deckhouse deployment image (by default current tag from deckhouse deployment will be used). Args: <new-registry> Registry that will be used for deckhouse images (example: registry.deckhouse.io/deckhouse/ce). By default, https will be used, if you need http - provide '--scheme' flag with http value
- Дождитесь перехода пода registry в статус
Ready
. Если под находится в статусеImagePullBackoff
, перезапустите его. -
Дождитесь применения новых настроек на master-узле.
Проверьте журнал системного сервиса bashible на master-узле, например, с помощью следующей команды:
journalctl -u bashible -n 20
В журнале должно появится сообщение
Configuration is in sync, nothing to do
.Пример вывода при просмотре журнала сервиса bashible:
$ journalctl -u bashible -n 20 ... Aug 13 05:03:08 kube-master-0 systemd[1]: Started Bashible service. Aug 13 05:03:10 kube-master-0 bash[1847265]: Configuration is in sync, nothing to do. <-- Aug 13 05:03:10 kube-master-0 systemd[1]: bashible.service: Deactivated successfully. Aug 13 05:03:10 kube-master-0 systemd[1]: bashible.service: Consumed 1.075s CPU time.
-
Если необходимо отключить автоматическое обновление registry через сторонний registry, удалите параметр
releaseChannel
из конфигурации модуляdeckhouse
. -
Проверьте, не осталось ли в кластере подов с оригинальным адресом registry:
d8 k get pods -A -o json | jq -r '.items[] | select(.spec.containers[] | select(.image | startswith("registry.deckhouse"))) | .metadata.namespace + "\t" + .metadata.name' | sort | uniq