10.4. Configuration de l'image
Comprendre et configurer les paramètres du registre des images.
10.4.1. Paramètres de configuration du contrôleur d'images Copier lienLien copié sur presse-papiers!
La ressource image.config.openshift.io/cluster contient des informations à l'échelle du cluster sur la manière de gérer les images. Le nom canonique, et le seul valide, est cluster. La ressource spec offre les paramètres de configuration suivants.
Les paramètres tels que DisableScheduledImport, MaxImagesBulkImportedPerRepository, MaxScheduledImportsPerMinute, ScheduledImageImportMinimumIntervalSeconds, InternalRegistryHostname ne sont pas configurables.
| Paramètres | Description |
|---|---|
|
|
Limite les registres d'images de conteneurs à partir desquels les utilisateurs normaux peuvent importer des images. Définissez cette liste en fonction des registres dont vous pensez qu'ils contiennent des images valides et à partir desquels vous souhaitez que les applications puissent importer des images. Les utilisateurs autorisés à créer des images ou Chaque élément de cette liste contient un emplacement du registre spécifié par le nom de domaine du registre.
|
|
|
Une référence à une carte de configuration contenant des autorités de certification supplémentaires qui doivent être approuvées pendant
L'espace de noms de cette carte de configuration est |
|
|
Fournit les noms d'hôtes pour le registre d'images externe par défaut. Le nom d'hôte externe ne doit être défini que lorsque le registre d'images est exposé à l'extérieur. La première valeur est utilisée dans le champ |
|
| Contient la configuration qui détermine comment le runtime du conteneur doit traiter les registres individuels lors de l'accès aux images pour les builds et les pods. Par exemple, l'autorisation ou non d'un accès non sécurisé. Il ne contient pas de configuration pour le registre interne du cluster.
Il est possible de définir soit |
Lorsque le paramètre allowedRegistries est défini, tous les registres, y compris les registres registry.redhat.io et quay.io et le registre d'image OpenShift par défaut, sont bloqués sauf s'ils sont explicitement listés. Lors de l'utilisation du paramètre, pour éviter un échec du pod, ajoutez tous les registres, y compris les registres registry.redhat.io et quay.io et la liste internalRegistryHostname à allowedRegistries, car ils sont requis par les images de charge utile dans votre environnement. Pour les clusters déconnectés, les registres miroirs doivent également être ajoutés.
Le champ status de la ressource image.config.openshift.io/cluster contient les valeurs observées de la grappe.
| Paramètres | Description |
|---|---|
|
|
Défini par l'opérateur de registre d'images, qui contrôle le registre d'images |
|
|
Défini par l'opérateur du registre d'images, il fournit les noms d'hôtes externes pour le registre d'images lorsqu'il est exposé à l'extérieur. La première valeur est utilisée dans le champ |
10.4.2. Configuration des paramètres du registre des images Copier lienLien copié sur presse-papiers!
Vous pouvez configurer les paramètres du registre d'images en modifiant la ressource personnalisée (CR) image.config.openshift.io/cluster. Lorsque les modifications apportées au registre sont appliquées à la CR image.config.openshift.io/cluster, l'opérateur de configuration de la machine (MCO) effectue les actions séquentielles suivantes :
- Cordons du nœud
- Applique les modifications en redémarrant CRI-O
Uncordons le nœud
NoteLe MCO ne redémarre pas les nœuds lorsqu'il détecte des changements.
Procédure
Modifiez la ressource personnalisée
image.config.openshift.io/cluster:oc edit image.config.openshift.io/cluster
$ oc edit image.config.openshift.io/clusterCopy to Clipboard Copied! Toggle word wrap Toggle overflow Voici un exemple de
image.config.openshift.io/clusterCR :Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
Image: Contient des informations à l'échelle du cluster sur la manière de gérer les images. Le nom canonique, et le seul valide, estcluster.- 2
allowedRegistriesForImport: Limite les registres d'images de conteneurs à partir desquels les utilisateurs normaux peuvent importer des images. Définissez cette liste en fonction des registres dont vous pensez qu'ils contiennent des images valides et à partir desquels vous souhaitez que les applications puissent importer des images. Les utilisateurs autorisés à créer des images ouImageStreamMappingsà partir de l'API ne sont pas concernés par cette politique. En général, seuls les administrateurs de clusters disposent des autorisations appropriées.- 3
additionalTrustedCA: Une référence à une carte de configuration contenant des autorités de certification (AC) supplémentaires qui sont approuvées lors de l'importation de flux d'images, de l'extraction d'images de pods, de l'extraction deopenshift-image-registryet des constructions. L'espace de noms pour cette carte de configuration estopenshift-config. Le format de la carte de configuration consiste à utiliser le nom d'hôte du registre comme clé et le certificat PEM comme valeur, pour chaque autorité de certification de registre supplémentaire à laquelle il faut faire confiance.- 4
registrySources: Contient la configuration qui détermine si le runtime du conteneur autorise ou bloque les registres individuels lors de l'accès aux images pour les builds et les pods. Le paramètreallowedRegistriesou le paramètreblockedRegistriespeut être défini, mais pas les deux. Vous pouvez également définir s'il faut ou non autoriser l'accès aux registres non sécurisés ou aux registres qui autorisent les registres utilisant des noms courts d'images. Cet exemple utilise le paramètreallowedRegistries, qui définit les registres dont l'utilisation est autorisée. Le registre non sécuriséinsecure.comest également autorisé. Le paramètreregistrySourcesne contient pas de configuration pour le registre interne du cluster.
NoteLorsque le paramètre
allowedRegistriesest défini, tous les registres, y compris les registres registry.redhat.io et quay.io et le registre d'image OpenShift par défaut, sont bloqués sauf s'ils sont explicitement répertoriés. Si vous utilisez ce paramètre, pour éviter une défaillance du pod, vous devez ajouter les registresregistry.redhat.ioetquay.ioet la listeinternalRegistryHostnameàallowedRegistries, car ils sont requis par les images de charge utile dans votre environnement. N'ajoutez pas les registresregistry.redhat.ioetquay.ioà la listeblockedRegistries.En utilisant les paramètres
allowedRegistries,blockedRegistriesouinsecureRegistries, vous pouvez spécifier un référentiel individuel au sein d'un registre. Par exemple :reg1.io/myrepo/myapp:latest.Les registres externes non sécurisés doivent être évités afin de réduire les risques éventuels pour la sécurité.
Pour vérifier que les modifications ont été appliquées, dressez la liste de vos nœuds :
oc get nodes
$ oc get nodesCopy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Pour plus d'informations sur les paramètres de registre autorisés, bloqués et non sécurisés, voir Configuration des paramètres du registre des images.
10.4.2.1. Configuration de magasins de confiance supplémentaires pour l'accès au registre d'images Copier lienLien copié sur presse-papiers!
La ressource personnalisée image.config.openshift.io/cluster peut contenir une référence à une carte de configuration qui contient des autorités de certification supplémentaires à approuver lors de l'accès au registre d'images.
Conditions préalables
- Les autorités de certification (CA) doivent être codées en PEM.
Procédure
Vous pouvez créer une carte de configuration dans l'espace de noms openshift-config et utiliser son nom dans AdditionalTrustedCA dans la ressource personnalisée image.config.openshift.io pour fournir des autorités de certification supplémentaires qui doivent être approuvées lorsqu'elles contactent des registres externes.
La clé de configuration est le nom d'hôte d'un registre avec le port pour lequel cette autorité de certification doit être approuvée, et le contenu du certificat PEM est la valeur, pour chaque autorité de certification de registre supplémentaire à approuver.
Registre d'images Exemple de carte de configuration de l'autorité de certification
- 1
- Si le registre comporte le port, tel que
registry-with-port.example.com:5000,:doit être remplacé par...
Vous pouvez configurer des autorités de certification supplémentaires en suivant la procédure suivante.
Pour configurer une autorité de certification supplémentaire :
oc create configmap registry-config --from-file=<external_registry_address>=ca.crt -n openshift-config
$ oc create configmap registry-config --from-file=<external_registry_address>=ca.crt -n openshift-configCopy to Clipboard Copied! Toggle word wrap Toggle overflow oc edit image.config.openshift.io cluster
$ oc edit image.config.openshift.io clusterCopy to Clipboard Copied! Toggle word wrap Toggle overflow spec: additionalTrustedCA: name: registry-configspec: additionalTrustedCA: name: registry-configCopy to Clipboard Copied! Toggle word wrap Toggle overflow
10.4.2.2. Configuration de la mise en miroir du référentiel du registre d'images Copier lienLien copié sur presse-papiers!
La configuration de la mise en miroir du référentiel du registre des conteneurs vous permet d'effectuer les opérations suivantes :
- Configurez votre cluster OpenShift Container Platform pour rediriger les demandes d'extraction d'images à partir d'un dépôt sur un registre d'images source et les faire résoudre par un dépôt sur un registre d'images miroir.
- Identifier plusieurs référentiels miroirs pour chaque référentiel cible, afin de s'assurer que si un miroir est en panne, un autre peut être utilisé.
Les attributs de la mise en miroir de référentiel dans OpenShift Container Platform sont les suivants :
- Les extractions d'images résistent aux interruptions du registre.
- Les clusters situés dans des environnements déconnectés peuvent extraire des images de sites critiques, tels que quay.io, et demander aux registres situés derrière le pare-feu de l'entreprise de fournir les images demandées.
- Un ordre particulier de registres est essayé lorsqu'une demande d'extraction d'image est faite, le registre permanent étant généralement le dernier essayé.
-
Les informations sur le miroir que vous saisissez sont ajoutées au fichier
/etc/containers/registries.confsur chaque nœud du cluster OpenShift Container Platform. - Lorsqu'un nœud demande une image à partir du référentiel source, il essaie chaque référentiel miroir à tour de rôle jusqu'à ce qu'il trouve le contenu demandé. Si tous les miroirs échouent, le cluster essaie le référentiel source. En cas de succès, l'image est transférée au nœud.
La configuration de la mise en miroir du référentiel peut se faire de la manière suivante :
A l'installation d'OpenShift Container Platform :
En extrayant les images de conteneurs nécessaires à OpenShift Container Platform, puis en amenant ces images derrière le pare-feu de votre entreprise, vous pouvez installer OpenShift Container Platform dans un centre de données qui se trouve dans un environnement déconnecté.
Après l'installation d'OpenShift Container Platform :
Même si vous ne configurez pas la mise en miroir lors de l'installation d'OpenShift Container Platform, vous pouvez le faire plus tard en utilisant l'objet
ImageContentSourcePolicy.
La procédure suivante fournit une configuration miroir post-installation, dans laquelle vous créez un objet ImageContentSourcePolicy qui identifie :
- La source du référentiel d'images de conteneurs que vous souhaitez mettre en miroir.
- Une entrée distincte pour chaque référentiel miroir dans lequel vous souhaitez proposer le contenu demandé au référentiel source.
Vous ne pouvez configurer des secrets de tirage globaux que pour les clusters qui ont un objet ImageContentSourcePolicy. Vous ne pouvez pas ajouter un secret d'extraction à un projet.
Conditions préalables
-
Accès au cluster en tant qu'utilisateur ayant le rôle
cluster-admin.
Procédure
Configurer les référentiels miroirs, en utilisant l'un ou l'autre :
- La configuration d'un référentiel miroir avec Red Hat Quay, comme décrit dans Red Hat Quay Repository Mirroring. L'utilisation de Red Hat Quay vous permet de copier des images d'un référentiel vers un autre et de synchroniser automatiquement ces référentiels de manière répétée au fil du temps.
Utilisation d'un outil tel que
skopeopour copier manuellement les images du répertoire source vers le référentiel miroir.Par exemple, après avoir installé le paquetage RPM skopeo sur un système Red Hat Enterprise Linux (RHEL) 7 ou RHEL 8, utilisez la commande
skopeocomme indiqué dans cet exemple :skopeo copy \ docker://registry.access.redhat.com/ubi8/ubi-minimal@sha256:5cfbaf45ca96806917830c183e9f37df2e913b187adb32e89fd83fa455ebaa6 \ docker://example.io/example/ubi-minimal
$ skopeo copy \ docker://registry.access.redhat.com/ubi8/ubi-minimal@sha256:5cfbaf45ca96806917830c183e9f37df2e913b187adb32e89fd83fa455ebaa6 \ docker://example.io/example/ubi-minimalCopy to Clipboard Copied! Toggle word wrap Toggle overflow Dans cet exemple, vous avez un registre d'images de conteneurs nommé
example.ioavec un dépôt d'images nomméexampledans lequel vous voulez copier l'imageubi8/ubi-minimalà partir deregistry.access.redhat.com. Après avoir créé le registre, vous pouvez configurer votre cluster OpenShift Container Platform pour rediriger les requêtes faites sur le dépôt source vers le dépôt miroir.
- Connectez-vous à votre cluster OpenShift Container Platform.
Créez un fichier
ImageContentSourcePolicy(par exemple,registryrepomirror.yaml), en remplaçant la source et les miroirs par vos propres paires et images de registres et de référentiels :Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Indique le nom du registre d'images et du référentiel.
- 2
- Indique plusieurs référentiels miroirs pour chaque référentiel cible. Si un miroir est hors service, le référentiel cible peut utiliser un autre miroir.
- 3
- Indique le registre et le référentiel contenant le contenu qui est mis en miroir.
- 4
- Vous pouvez configurer un espace de noms à l'intérieur d'un registre pour utiliser n'importe quelle image dans cet espace de noms. Si vous utilisez un domaine de registre comme source, la ressource
ImageContentSourcePolicyest appliquée à tous les référentiels du registre. - 5
- Si vous configurez le nom du registre, la ressource
ImageContentSourcePolicyest appliquée à tous les référentiels, du registre source au registre miroir. - 6
- Tire l'image
mirror.example.net/image@sha256:…. - 7
- Extrait l'image
myimagedans l'espace de noms du registre source à partir du miroirmirror.example.net/myimage@sha256:…. - 8
- Extrait l'image
registry.example.com/example/myimagedu registre miroirmirror.example.net/registry-example-com/example/myimage@sha256:…. La ressourceImageContentSourcePolicyest appliquée à tous les référentiels d'un registre source à un registre miroirmirror.example.net/registry-example-com.
Créer le nouvel objet
ImageContentSourcePolicy:oc create -f registryrepomirror.yaml
$ oc create -f registryrepomirror.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow Une fois l'objet
ImageContentSourcePolicycréé, les nouveaux paramètres sont déployés sur chaque nœud et le cluster commence à utiliser le référentiel miroir pour les requêtes vers le référentiel source.Pour vérifier que les paramètres de configuration en miroir sont appliqués, procédez comme suit sur l'un des nœuds.
Dressez la liste de vos nœuds :
oc get node
$ oc get nodeCopy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
Copy to Clipboard Copied! Toggle word wrap Toggle overflow La ressource
Imagecontentsourcepolicyne redémarre pas les nœuds.Lancez le processus de débogage pour accéder au nœud :
oc debug node/ip-10-0-147-35.ec2.internal
$ oc debug node/ip-10-0-147-35.ec2.internalCopy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
Starting pod/ip-10-0-147-35ec2internal-debug ... To use host binaries, run `chroot /host`
Starting pod/ip-10-0-147-35ec2internal-debug ... To use host binaries, run `chroot /host`Copy to Clipboard Copied! Toggle word wrap Toggle overflow Changez votre répertoire racine en
/host:chroot /host
sh-4.2# chroot /hostCopy to Clipboard Copied! Toggle word wrap Toggle overflow Vérifiez le fichier
/etc/containers/registries.confpour vous assurer que les changements ont bien été effectués :cat /etc/containers/registries.conf
sh-4.2# cat /etc/containers/registries.confCopy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Transmet un condensé d'image au nœud à partir de la source et vérifie s'il est résolu par le miroir. Les objets
ImageContentSourcePolicyne prennent en charge que les condensés d'image, et non les balises d'image.podman pull --log-level=debug registry.access.redhat.com/ubi8/ubi-minimal@sha256:5cfbaf45ca96806917830c183e9f37df2e913b187adb32e89fd83fa455ebaa6
sh-4.2# podman pull --log-level=debug registry.access.redhat.com/ubi8/ubi-minimal@sha256:5cfbaf45ca96806917830c183e9f37df2e913b187adb32e89fd83fa455ebaa6Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Dépannage de la mise en miroir du référentiel
Si la procédure de mise en miroir du référentiel ne fonctionne pas comme décrit, utilisez les informations suivantes sur le fonctionnement de la mise en miroir du référentiel pour résoudre le problème.
- Le premier miroir de travail est utilisé pour fournir l'image tirée.
- Le registre principal n'est utilisé que si aucun autre miroir ne fonctionne.
-
Dans le contexte du système, les drapeaux
Insecuresont utilisés comme solution de repli. -
Le format du fichier
/etc/containers/registries.confa récemment changé. Il s'agit désormais de la version 2 et du format TOML.