12.5. Configuration du cluster pour le registre miroir
Après avoir créé et mis en miroir les images dans le registre miroir, vous devez modifier votre cluster pour que les pods puissent extraire des images du registre miroir.
Vous devez :
- Ajoutez les informations d'identification du registre du miroir au secret d'extraction global.
- Ajoutez le certificat du serveur de registre miroir au cluster.
Créer une ressource personnalisée
ImageContentSourcePolicy
(ICSP), qui associe le registre miroir au registre source.Ajouter l'identifiant du registre des miroirs au secret d'extraction global du cluster :
oc set data secret/pull-secret -n openshift-config --from-file=.dockerconfigjson=<pull_secret_location> 1
- 1
- Indiquez le chemin d'accès au nouveau fichier de secret d'extraction.
Par exemple :
$ oc set data secret/pull-secret -n openshift-config --from-file=.dockerconfigjson=.mirrorsecretconfigjson
Ajoutez le certificat du serveur de registre miroir signé par l'autorité de certification aux nœuds du cluster :
Créer une carte de configuration qui inclut le certificat du serveur pour le registre miroir
$ oc create configmap <config_map_name> --from-file=<mirror_address_host>..<port>=$path/ca.crt -n openshift-config
Par exemple :
S oc create configmap registry-config --from-file=mirror.registry.com..443=/root/certs/ca-chain.cert.pem -n openshift-config
Utilisez la carte de configuration pour mettre à jour la ressource personnalisée (CR)
image.config.openshift.io/cluster
. OpenShift Container Platform applique les modifications de cette CR à tous les nœuds du cluster :$ oc patch image.config.openshift.io/cluster --patch '{"spec":{"additionalTrustedCA":{"name":"<config_map_name>"}}}' --type=merge
Par exemple :
$ oc patch image.config.openshift.io/cluster --patch '{"spec":{"additionalTrustedCA":{"name":"registry-config"}}}' --type=merge
Créer un ICSP pour rediriger les demandes de retrait de conteneurs des registres en ligne vers le registre miroir :
Créer la ressource personnalisée
ImageContentSourcePolicy
:apiVersion: operator.openshift.io/v1alpha1 kind: ImageContentSourcePolicy metadata: name: mirror-ocp spec: repositoryDigestMirrors: - mirrors: - mirror.registry.com:443/ocp/release 1 source: quay.io/openshift-release-dev/ocp-release 2 - mirrors: - mirror.registry.com:443/ocp/release source: quay.io/openshift-release-dev/ocp-v4.0-art-dev
Créer l'objet ICSP :
$ oc create -f registryrepomirror.yaml
Exemple de sortie
imagecontentsourcepolicy.operator.openshift.io/mirror-ocp created
OpenShift Container Platform applique les modifications de ce CR à tous les nœuds du cluster.
Vérifiez que les informations d'identification, l'autorité de certification et l'ICSP pour le registre miroir ont été ajoutés :
Se connecter à un nœud :
oc debug node/<node_name>
Définir
/host
comme répertoire racine dans l'interpréteur de commandes de débogage :sh-4.4# chroot /host
Vérifiez les informations d'identification dans le fichier
config.json
:sh-4.4# cat /var/lib/kubelet/config.json
Exemple de sortie
{"auths":{"brew.registry.redhat.io":{"xx=="},"brewregistry.stage.redhat.io":{"auth":"xxx=="},"mirror.registry.com:443":{"auth":"xx="}}} 1
- 1
- Assurez-vous que le registre du miroir et les informations d'identification sont présents.
Se rendre dans le répertoire
certs.d
sh-4.4# cd /etc/docker/certs.d/
Liste des certificats dans le répertoire
certs.d
:sh-4.4# ls
Exemple de sortie
image-registry.openshift-image-registry.svc.cluster.local:5000 image-registry.openshift-image-registry.svc:5000 mirror.registry.com:443 1
- 1
- Assurez-vous que le registre miroir figure dans la liste.
Vérifiez que l'ICSP a ajouté le registre miroir au fichier
registries.conf
:sh-4.4# cat /etc/containers/registries.conf
Exemple de sortie
unqualified-search-registries = ["registry.access.redhat.com", "docker.io"] [[registry]] prefix = "" location = "quay.io/openshift-release-dev/ocp-release" mirror-by-digest-only = true [[registry.mirror]] location = "mirror.registry.com:443/ocp/release" [[registry]] prefix = "" location = "quay.io/openshift-release-dev/ocp-v4.0-art-dev" mirror-by-digest-only = true [[registry.mirror]] location = "mirror.registry.com:443/ocp/release"
Les paramètres
registry.mirror
indiquent que le registre miroir est recherché avant le registre original.Quitter le nœud.
sh-4.4# exit