6.8. Importation d'images et de flux d'images à partir de registres privés
Un flux d'images peut être configuré pour importer des métadonnées de balises et d'images à partir de registres d'images privés nécessitant une authentification. Cette procédure s'applique si vous modifiez le registre utilisé par l'opérateur d'échantillonnage de cluster pour extraire du contenu et le remplacer par autre chose que registry.redhat.io.
Lors de l'importation à partir de registres non sécurisés ou sécurisés, l'URL du registre définie dans le secret doit inclure le suffixe du port :80
, sinon le secret n'est pas utilisé lors de la tentative d'importation à partir du registre.
Procédure
Vous devez créer un objet
secret
utilisé pour stocker vos informations d'identification en entrant la commande suivante :$ oc create secret generic <secret_name> --from-file=.dockerconfigjson=<file_absolute_path> --type=kubernetes.io/dockerconfigjson
Une fois le secret configuré, créez le nouveau flux d'images ou entrez la commande
oc import-image
:$ oc import-image <imagestreamtag> --from=<image> --confirm
Au cours du processus d'importation, OpenShift Container Platform récupère les secrets et les fournit à la partie distante.
6.8.1. Permettre aux pods de référencer des images provenant d'autres registres sécurisés
Le fichier .dockercfg
$HOME/.docker/config.json
pour les clients Docker est un fichier d'informations d'identification Docker qui stocke vos informations d'authentification si vous vous êtes précédemment connecté à un registre sécurisé ou non.
Pour extraire une image de conteneur sécurisée qui ne provient pas du registre d'images d'OpenShift, vous devez créer un secret d'extraction à partir de vos informations d'identification Docker et l'ajouter à votre compte de service.
Le fichier d'informations d'identification Docker et le secret d'extraction associé peuvent contenir plusieurs références au même registre, chacune avec son propre ensemble d'informations d'identification.
Exemple de fichier config.json
{ "auths":{ "cloud.openshift.com":{ "auth":"b3Blb=", "email":"you@example.com" }, "quay.io":{ "auth":"b3Blb=", "email":"you@example.com" }, "quay.io/repository-main":{ "auth":"b3Blb=", "email":"you@example.com" } } }
Exemple de secret de tirage
apiVersion: v1 data: .dockerconfigjson: ewogICAiYXV0aHMiOnsKICAgICAgIm0iOnsKICAgICAgIsKICAgICAgICAgImF1dGgiOiJiM0JsYj0iLAogICAgICAgICAiZW1haWwiOiJ5b3VAZXhhbXBsZS5jb20iCiAgICAgIH0KICAgfQp9Cg== kind: Secret metadata: creationTimestamp: "2021-09-09T19:10:11Z" name: pull-secret namespace: default resourceVersion: "37676" uid: e2851531-01bc-48ba-878c-de96cfe31020 type: Opaque
Procédure
Si vous disposez déjà d'un fichier
.dockercfg
pour le registre sécurisé, vous pouvez créer un secret à partir de ce fichier en exécutant :$ oc create secret generic <pull_secret_name> \ --from-file=.dockercfg=<path/to/.dockercfg> \ --type=kubernetes.io/dockercfg
Ou si vous avez un fichier
$HOME/.docker/config.json
:$ oc create secret generic <pull_secret_name> \ --from-file=.dockerconfigjson=<path/to/.docker/config.json> \ --type=kubernetes.io/dockerconfigjson
Si vous n'avez pas encore de fichier d'informations d'identification Docker pour le registre sécurisé, vous pouvez créer un secret en exécutant :
$ oc create secret docker-registry <pull_secret_name> \ --docker-server=<registry_server> \ --docker-username=<user_name> \ --docker-password=<password> \ --docker-email=<email>
Pour utiliser un secret afin d'extraire des images pour les pods, vous devez ajouter le secret à votre compte de service. Le nom du compte de service dans cet exemple doit correspondre au nom du compte de service utilisé par le pod. Le compte de service par défaut est
default
:$ oc secrets link default <pull_secret_name> --for=pull