9.2. Configuration des paramètres du registre des images
Il est possible de configurer les paramètres du registre des images en modifiant la ressource personnalisée image.config.openshift.io/cluster (CR). Lorsque des modifications au registre sont appliquées à image.config.openshift.io/cluster CR, l’opérateur de configuration de machine (MCO) effectue les actions séquentielles suivantes:
- Cordons le nœud
- Applique des modifications en redémarrant CRI-O
Désenregistre le nœud
NoteL’AGC ne redémarre pas les nœuds lorsqu’il détecte les changements.
Procédure
Éditer la ressource personnalisée image.config.openshift.io/cluster:
oc edit image.config.openshift.io/cluster
$ oc edit image.config.openshift.io/cluster
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Ce qui suit est un exemple image.config.openshift.io/cluster CR:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Image: Tenue des informations à l’échelle du cluster sur la façon de gérer les images. Le nom canonique et valide est cluster.
- 2
- permisRegistriesForImport: Limite les enregistrements d’images de conteneur à partir desquels les utilisateurs normaux peuvent importer des images. Définissez cette liste dans les registres auxquels vous avez confiance pour contenir des images valides, et que vous souhaitez que les applications puissent importer à partir. Les utilisateurs autorisés à créer des images ou ImageStreamMappings à partir de l’API ne sont pas affectés par cette politique. Généralement, seuls les administrateurs de cluster ont les autorisations appropriées.
- 3
- autreTrustedCA: Une référence à une carte de configuration contenant des autorisations de certificat supplémentaires (CA) qui sont fiables lors de l’importation des flux d’images, de la prise d’image pod, de l’extraction d’enregistrement d’image ouverte et des builds. L’espace de noms de cette carte de configuration est openshift-config. Le format de la carte de configuration est d’utiliser le nom d’hôte du registre comme clé, et le certificat PEM comme valeur, pour chaque CA de registre supplémentaire à faire confiance.
- 4
- RegistrySources: Contient une configuration qui détermine si l’exécution du conteneur autorise ou bloque les registres individuels lors de l’accès aux images pour les builds et les pods. Le paramètre d’enregistrement autorisé ou le paramètre des Registres bloqués peut être défini, mais pas les deux. Il est également possible de définir si vous autorisez ou non l’accès à des registres ou registres non sécurisés qui autorisent les registres qui utilisent des noms courts d’image. Cet exemple utilise le paramètre autoriséRegistries, qui définit les registres qui sont autorisés à être utilisés. Le registre non sécurisé insecure.com est également autorisé. Le paramètre RegistrySources ne contient pas de configuration pour le registre interne du cluster.
NoteLorsque le paramètre de registre autorisé est défini, tous les registres, y compris les registres Registry.redhat.io et quay.io et le registre d’images OpenShift par défaut, sont bloqués à moins d’être explicitement répertoriés. Dans le cas où vous utilisez le paramètre, afin d’éviter la défaillance de la pod, vous devez ajouter les registres Registry.redhat.io et quay.io ainsi que le nom de registre interne à la liste des Registres autorisés, car ils sont requis par les images de charge utile dans votre environnement. Il ne faut pas ajouter les registres Registry.redhat.io et quay.io à la liste des Registres bloqués.
Lorsque vous utilisez les Registres autorisés, les Registres bloqués ou le paramètre InsécuritéRegistries, vous pouvez spécifier un référentiel individuel au sein d’un registre. Exemple: reg1.io/myrepo/myapp:lastest.
Les registres externes non sécurisés devraient être évités afin de réduire les risques éventuels pour la sécurité.
Afin de vérifier que les modifications sont appliquées, répertoriez vos nœuds:
oc get nodes
$ oc get nodes
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.2.1. Ajout de registres spécifiques Copier lienLien copié sur presse-papiers!
Il est possible d’ajouter une liste d’enregistrements, et éventuellement un référentiel individuel au sein d’un registre, qui sont autorisés pour les actions d’extraction et de poussée d’image en modifiant la ressource personnalisée image.config.openshift.io/cluster (CR). Le service Red Hat OpenShift sur AWS applique les modifications apportées à ce CR à tous les nœuds du cluster.
Lorsque vous tirez ou poussez des images, le temps d’exécution du conteneur recherche les registres listés sous le paramètre RegistrySources dans l’image.config.openshift.io/cluster CR. Lorsque vous avez créé une liste d’enregistrements sous le paramètre d’enregistrement autorisé, le temps d’exécution du conteneur ne recherche que ces registres. Les registres qui ne figurent pas dans la liste sont bloqués.
Lorsque le paramètre de registre autorisé est défini, tous les registres, y compris les registres Registry.redhat.io et quay.io et le registre d’images OpenShift par défaut, sont bloqués à moins d’être explicitement répertoriés. Dans le cas où vous utilisez le paramètre, pour éviter la défaillance de la pod, ajoutez les registres Registry.redhat.io et quay.io ainsi que le nom de registre interne à la liste des registres autorisés, comme ils sont requis par les images de charge utile dans votre environnement. Dans le cas des clusters déconnectés, des registres miroirs devraient également être ajoutés.
Procédure
Éditer la ressource personnalisée image.config.openshift.io/cluster:
oc edit image.config.openshift.io/cluster
$ oc edit image.config.openshift.io/cluster
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Ce qui suit est un exemple image.config.openshift.io/cluster CR avec une liste autorisée:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Contient des configurations qui déterminent comment l’exécution du conteneur devrait traiter les registres individuels lors de l’accès aux images pour les builds et les pods. Il ne contient pas de configuration pour le registre interne des clusters.
- 2
- Indiquez les registres, et éventuellement un référentiel dans ce registre, à utiliser pour les actions d’extraction et de poussée d’image. Les autres registres sont bloqués.
NoteLe paramètre d’enregistrement autorisé ou le paramètre des Registres bloqués peut être défini, mais pas les deux.
L’opérateur de configuration de machine (MCO) regarde la ressource image.config.openshift.io/cluster pour toute modification des registres. Lorsque l’AGC détecte un changement, il draine les nœuds, applique le changement et désenregistre les nœuds. Après le retour des nœuds à l’état Ready, la liste des registres autorisés est utilisée pour mettre à jour la politique de signature d’image dans le fichier /etc/containers/policy.json sur chaque nœud.
Lorsque votre cluster utilise le paramètre RegistrySources.insecureRegistries, assurez-vous que les registres non sécurisés sont inclus dans la liste autorisée.
À titre d’exemple:
9.2.2. Blocage des registres spécifiques Copier lienLien copié sur presse-papiers!
Il est possible de bloquer n’importe quel registre, et éventuellement un référentiel individuel dans un registre, en modifiant la ressource personnalisée image.config.openshift.io/cluster (CR). Le service Red Hat OpenShift sur AWS applique les modifications apportées à ce CR à tous les nœuds du cluster.
Lorsque vous tirez ou poussez des images, le temps d’exécution du conteneur recherche les registres listés sous le paramètre RegistrySources dans l’image.config.openshift.io/cluster CR. Lorsque vous avez créé une liste d’enregistrements sous le paramètre Registres bloqués, l’exécution du conteneur ne recherche pas ces registres. Les autres registres sont autorisés.
Afin d’éviter la défaillance de la pod, n’ajoutez pas les registres Registry.redhat.io et quay.io à la liste des Registres bloqués, car ils sont requis par les images de charge utile dans votre environnement.
Procédure
Éditer la ressource personnalisée image.config.openshift.io/cluster:
oc edit image.config.openshift.io/cluster
$ oc edit image.config.openshift.io/cluster
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Ce qui suit est un exemple image.config.openshift.io/cluster CR avec une liste bloquée:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Contient des configurations qui déterminent comment l’exécution du conteneur devrait traiter les registres individuels lors de l’accès aux images pour les builds et les pods. Il ne contient pas de configuration pour le registre interne des clusters.
- 2
- Indiquez les registres, et éventuellement un référentiel dans ce registre, qui ne doit pas être utilisé pour les actions d’extraction et de poussée d’image. Les autres registres sont autorisés.
NoteLe registre des registres bloqués ou le registre autorisé des registres peuvent être définis, mais pas les deux.
L’opérateur de configuration de machine (MCO) regarde la ressource image.config.openshift.io/cluster pour toute modification des registres. Lorsque l’AGC détecte un changement, il draine les nœuds, applique le changement et désenregistre les nœuds. Après le retour des nœuds à l’état Ready, les modifications aux registres bloqués apparaissent dans le fichier /etc/containers/registries.conf sur chaque nœud.
9.2.3. Autoriser les registres non sécurisés Copier lienLien copié sur presse-papiers!
Il est possible d’ajouter des registres non sécurisés, et éventuellement un référentiel individuel au sein d’un registre, en éditant la ressource personnalisée image.config.openshift.io/cluster (CR). Le service Red Hat OpenShift sur AWS applique les modifications apportées à ce CR à tous les nœuds du cluster.
Les registres qui n’utilisent pas de certificats SSL valides ou qui ne nécessitent pas de connexion HTTPS sont considérés comme non sécurisés.
Les registres externes non sécurisés devraient être évités afin de réduire les risques éventuels pour la sécurité.
Procédure
Éditer la ressource personnalisée image.config.openshift.io/cluster:
oc edit image.config.openshift.io/cluster
$ oc edit image.config.openshift.io/cluster
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Ce qui suit est un exemple image.config.openshift.io/cluster CR avec une liste de registres non sécurisés:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Contient des configurations qui déterminent comment l’exécution du conteneur devrait traiter les registres individuels lors de l’accès aux images pour les builds et les pods. Il ne contient pas de configuration pour le registre interne des clusters.
- 2
- Indiquez un registre non sécurisé. Dans ce registre, vous pouvez spécifier un référentiel.
- 3
- Assurez-vous que les registres non sécurisés sont inclus dans la liste des registres autorisés.
NoteLorsque le paramètre de registre autorisé est défini, tous les registres, y compris les registres Registry.redhat.io et quay.io et le registre d’images OpenShift par défaut, sont bloqués à moins d’être explicitement répertoriés. Dans le cas où vous utilisez le paramètre, pour éviter la défaillance de la pod, ajoutez tous les registres, y compris les registres Registry.redhat.io et quay.io et l’enregistrement interneHostname à la liste des Registres autorisés, car ils sont requis par les images de charge utile dans votre environnement. Dans le cas des clusters déconnectés, des registres miroirs devraient également être ajoutés.
L’opérateur de configuration de machine (MCO) surveille l’image.config.openshift.io/cluster CR pour toute modification des registres, puis draine et désenregistre les nœuds lorsqu’il détecte les changements. Après le retour des nœuds à l’état Ready, les modifications des registres non sécurisés et bloqués apparaissent dans le fichier /etc/containers/registries.conf sur chaque nœud.
9.2.4. Ajout de registres permettant des noms courts d’image Copier lienLien copié sur presse-papiers!
Il est possible d’ajouter des registres à la recherche d’un nom court en éditant la ressource personnalisée image.config.openshift.io/cluster (CR). Le service Red Hat OpenShift sur AWS applique les modifications apportées à ce CR à tous les nœuds du cluster.
Le nom court d’une image vous permet de rechercher des images sans inclure le nom de domaine entièrement qualifié dans la spécification pull. À titre d’exemple, vous pouvez utiliser rhel7/etcd au lieu de Registry.access.redhat.com/rhe7/etcd.
Il se peut que vous utilisiez des noms courts dans des situations où l’utilisation du chemin complet n’est pas pratique. À titre d’exemple, si votre cluster fait référence à plusieurs registres internes dont le DNS change fréquemment, vous devrez mettre à jour les noms de domaine entièrement qualifiés dans vos spécifications de traction à chaque modification. Dans ce cas, l’utilisation d’un nom court d’image peut être bénéfique.
Lorsque vous tirez ou poussez des images, le temps d’exécution du conteneur recherche les registres listés sous le paramètre RegistrySources dans l’image.config.openshift.io/cluster CR. Lorsque vous avez créé une liste d’enregistrements sous le paramètre containerRuntimeSearchRegistries, lorsque vous tirez une image avec un nom court, le temps d’exécution du conteneur recherche ces registres.
L’utilisation de noms courts d’images avec des registres publics est fortement découragée parce que l’image pourrait ne pas être déployée si le registre public nécessite une authentification. Utiliser des noms d’images entièrement qualifiés avec des registres publics.
Les registres internes ou privés Red Hat prennent généralement en charge l’utilisation de noms courts d’images.
Lorsque vous répertoriez les registres publics sous le paramètre containerRuntimeSearchRegistries (y compris les registres register.redhat.io, docker.io et quay.io), vous exposez vos informations d’identification à tous les registres de la liste, et vous risquez des attaques de réseau et de registre. Car vous ne pouvez avoir qu’un seul secret pour tirer des images, telles que définies par le secret d’attraction global, ce secret est utilisé pour authentifier contre chaque registre de cette liste. Donc, si vous incluez des registres publics dans la liste, vous introduisez un risque de sécurité.
Il est impossible de répertorier plusieurs registres publics sous le paramètre containerRuntimeSearchRegistries si chaque registre public nécessite des informations d’identification différentes et qu’un cluster ne répertorie pas le registre public dans le secret d’attraction global.
Dans le cas d’un registre public nécessitant une authentification, vous ne pouvez utiliser un nom court d’image que si le registre a ses informations d’identification stockées dans le secret d’attraction global.
L’opérateur de configuration de machine (MCO) regarde la ressource image.config.openshift.io/cluster pour toute modification des registres. Lorsque l’AGC détecte un changement, il draine les nœuds, applique le changement et désenregistre les nœuds. Après que les nœuds retournent à l’état Ready, si le paramètre containerRuntimeSearchRegistries est ajouté, l’AGC crée un fichier dans le répertoire /etc/containers/registries.conf.d sur chaque nœud avec les registres listés. Le fichier remplace la liste par défaut des registres de recherche non qualifiés dans le fichier /etc/containers/registries.conf. Il n’y a aucun moyen de revenir à la liste par défaut des registres de recherche non qualifiés.
Le paramètre containerRuntimeSearchRegistries ne fonctionne qu’avec les moteurs de conteneurs Podman et CRI-O. Les registres de la liste ne peuvent être utilisés que dans les spécifications de pod, et non dans les builds et les flux d’images.
Procédure
Éditer la ressource personnalisée image.config.openshift.io/cluster:
oc edit image.config.openshift.io/cluster
$ oc edit image.config.openshift.io/cluster
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Ce qui suit est un exemple image.config.openshift.io/cluster CR:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Indiquez les registres à utiliser avec les noms courts de l’image. Il est recommandé d’utiliser des noms courts d’images avec uniquement des registres internes ou privés afin de réduire les risques de sécurité possibles.
- 2
- Assurez-vous que tous les registres énumérés sous containerRuntimeSearchRegistries sont inclus dans la liste des registres autorisés.
NoteLorsque le paramètre de registre autorisé est défini, tous les registres, y compris les registres Registry.redhat.io et quay.io et le registre d’images OpenShift par défaut, sont bloqués à moins d’être explicitement répertoriés. Lorsque vous utilisez ce paramètre, pour éviter la défaillance de la pod, ajoutez tous les registres, y compris les registres register.redhat.io et quay.io et le nom de registre interne à la liste des Registres autorisés, car ils sont requis par les images de charge utile dans votre environnement. Dans le cas des clusters déconnectés, des registres miroirs devraient également être ajoutés.
9.2.5. Configuration des 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 à faire confiance pendant l’accès au registre des images.
Conditions préalables
- Les autorités de certification (CA) doivent être codées en PEM.
Procédure
Dans la ressource personnalisée image.config.openshift.io, vous pouvez créer une carte de configuration dans l’espace de noms openshift-config et utiliser son nom dans la ressource personnalisée image.config.openshift.io pour fournir des CA supplémentaires qui devraient être fiables lorsque vous contactez des registres externes.
La clé map de configuration est le nom d’hôte d’un registre avec le port auquel il faut faire confiance à cette CA, et le contenu du certificat PEM est la valeur, pour chaque CA de registre supplémentaire à faire confiance.
Exemple de carte de configuration CA
- 1
- Dans le cas où le registre possède le port, tel que Registry-with-port.example.com:5000, : doit être remplacé par ...
Il est possible de configurer des CA supplémentaires avec la procédure suivante.
Configurer un CA 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-config
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc edit image.config.openshift.io cluster
$ oc edit image.config.openshift.io cluster
Copy to Clipboard Copied! Toggle word wrap Toggle overflow spec: additionalTrustedCA: name: registry-config
spec: additionalTrustedCA: name: registry-config
Copy to Clipboard Copied! Toggle word wrap Toggle overflow