3.8. Configuration du registre pour Red Hat OpenShift Data Foundation
Pour configurer le registre d'images interne sur bare metal et vSphere afin d'utiliser le stockage Red Hat OpenShift Data Foundation, vous devez installer OpenShift Data Foundation et ensuite configurer le registre d'images à l'aide de Ceph ou Noobaa.
3.8.1. Configurer l'opérateur de registre d'images pour utiliser le stockage Ceph RGW avec Red Hat OpenShift Data Foundation
Red Hat OpenShift Data Foundation intègre plusieurs types de stockage que vous pouvez utiliser avec le registre d'images interne :
- Ceph, un système de fichiers partagé et distribué et un système de stockage d'objets sur site
- NooBaa, une passerelle d'objets multicloud
Ce document décrit la procédure à suivre pour configurer le registre d'images afin d'utiliser le stockage Ceph RGW.
Conditions préalables
-
Vous avez accès au cluster en tant qu'utilisateur ayant le rôle
cluster-admin
. - Vous avez accès à la console web de OpenShift Container Platform.
-
Vous avez installé le CLI
oc
. - Vous avez installé l'opérateur OpenShift Data Foundation pour fournir le stockage d'objets et le stockage d'objets Ceph RGW.
Procédure
Créez la demande de seau d'objets à l'aide de la classe de stockage
ocs-storagecluster-ceph-rgw
. Par exemple :cat <<EOF | oc apply -f - apiVersion: objectbucket.io/v1alpha1 kind: ObjectBucketClaim metadata: name: rgwtest namespace: openshift-storage spec: storageClassName: ocs-storagecluster-ceph-rgw generateBucketName: rgwtest EOF
Obtenez le nom du seau en entrant la commande suivante :
$ bucket_name=$(oc get obc -n openshift-storage rgwtest -o jsonpath='{.spec.bucketName}')
Obtenez les informations d'identification AWS en entrant les commandes suivantes :
$ AWS_ACCESS_KEY_ID=$(oc get secret -n openshift-storage rgwtest -o yaml | grep -w "AWS_ACCESS_KEY_ID:" | head -n1 | awk '{print $2}' | base64 --decode)
$ AWS_SECRET_ACCESS_KEY=$(oc get secret -n openshift-storage rgwtest -o yaml | grep -w "AWS_SECRET_ACCESS_KEY:" | head -n1 | awk '{print $2}' | base64 --decode)
Créez le secret
image-registry-private-configuration-user
avec les informations d'identification AWS pour le nouveau seau sousopenshift-image-registry project
en entrant la commande suivante :$ oc create secret generic image-registry-private-configuration-user --from-literal=REGISTRY_STORAGE_S3_ACCESSKEY=${AWS_ACCESS_KEY_ID} --from-literal=REGISTRY_STORAGE_S3_SECRETKEY=${AWS_SECRET_ACCESS_KEY} --namespace openshift-image-registry
Créez une route de cryptage pour Ceph RGW en entrant la commande suivante :
$ oc create route reencrypt <route_name> --service=rook-ceph-rgw-ocs-storagecluster-cephobjectstore --port=https -n openshift-storage
Obtenez l'hôte de la route en entrant la commande suivante :
route_host=$(oc get route <route_name> -n openshift-storage -o=jsonpath='{.spec.host}')
Créez une carte de configuration qui utilise un certificat d'entrée en entrant les commandes suivantes :
$ oc extract secret/router-certs-default -n openshift-ingress --confirm
$ oc create configmap image-registry-s3-bundle --from-file=ca-bundle.crt=./tls.crt -n openshift-config
Configurez le registre d'images pour utiliser le stockage d'objets Ceph RGW en entrant la commande suivante :
$ oc patch config.image/cluster -p '{"spec":{"managementState":"Managed","replicas":2,"storage":{"managementState":"Unmanaged","s3":{"bucket":'\"${bucket_name}\"',"region":"us-east-1","regionEndpoint":'\"https://${route_host}\"',"virtualHostedStyle":false,"encrypt":false,"trustedCA":{"name":"image-registry-s3-bundle"}}}}}' --type=merge
3.8.2. Configurer l'opérateur de registre d'images pour utiliser le stockage Noobaa avec Red Hat OpenShift Data Foundation
Red Hat OpenShift Data Foundation intègre plusieurs types de stockage que vous pouvez utiliser avec le registre d'images interne :
- Ceph, un système de fichiers partagé et distribué et un système de stockage d'objets sur site
- NooBaa, une passerelle d'objets multicloud
Ce document décrit la procédure à suivre pour configurer le registre d'images afin d'utiliser le stockage Noobaa.
Conditions préalables
-
Vous avez accès au cluster en tant qu'utilisateur ayant le rôle
cluster-admin
. - Vous avez accès à la console web de OpenShift Container Platform.
-
Vous avez installé le CLI
oc
. - Vous avez installé l'opérateur OpenShift Data Foundation pour fournir le stockage d'objets et le stockage d'objets Noobaa.
Procédure
Créez la demande de seau d'objets à l'aide de la classe de stockage
openshift-storage.noobaa.io
. Par exemple :cat <<EOF | oc apply -f - apiVersion: objectbucket.io/v1alpha1 kind: ObjectBucketClaim metadata: name: noobaatest namespace: openshift-storage spec: storageClassName: openshift-storage.noobaa.io generateBucketName: noobaatest EOF
Obtenez le nom du seau en entrant la commande suivante :
$ bucket_name=$(oc get obc -n openshift-storage noobaatest -o jsonpath='{.spec.bucketName}')
Obtenez les informations d'identification AWS en entrant les commandes suivantes :
$ AWS_ACCESS_KEY_ID=$(oc get secret -n openshift-storage noobaatest -o yaml | grep -w "AWS_ACCESS_KEY_ID:" | head -n1 | awk '{print $2}' | base64 --decode)
$ AWS_SECRET_ACCESS_KEY=$(oc get secret -n openshift-storage noobaatest -o yaml | grep -w "AWS_SECRET_ACCESS_KEY:" | head -n1 | awk '{print $2}' | base64 --decode)
Créez le secret
image-registry-private-configuration-user
avec les informations d'identification AWS pour le nouveau seau sousopenshift-image-registry project
en entrant la commande suivante :$ oc create secret generic image-registry-private-configuration-user --from-literal=REGISTRY_STORAGE_S3_ACCESSKEY=${AWS_ACCESS_KEY_ID} --from-literal=REGISTRY_STORAGE_S3_SECRETKEY=${AWS_SECRET_ACCESS_KEY} --namespace openshift-image-registry
Obtenez l'hôte de la route en entrant la commande suivante :
$ route_host=$(oc get route s3 -n openshift-storage -o=jsonpath='{.spec.host}')
Créez une carte de configuration qui utilise un certificat d'entrée en entrant les commandes suivantes :
$ oc extract secret/router-certs-default -n openshift-ingress --confirm
$ oc create configmap image-registry-s3-bundle --from-file=ca-bundle.crt=./tls.crt -n openshift-config
Configurez le registre d'images pour utiliser le stockage d'objets Nooba en entrant la commande suivante :
$ oc patch config.image/cluster -p '{"spec":{"managementState":"Managed","replicas":2,"storage":{"managementState":"Unmanaged","s3":{"bucket":'\"${bucket_name}\"',"region":"us-east-1","regionEndpoint":'\"https://${route_host}\"',"virtualHostedStyle":false,"encrypt":false,"trustedCA":{"name":"image-registry-s3-bundle"}}}}}' --type=merge
3.8.3. Configurer l'opérateur de registre d'images pour utiliser le stockage CephFS avec Red Hat OpenShift Data Foundation
Red Hat OpenShift Data Foundation intègre plusieurs types de stockage que vous pouvez utiliser avec le registre d'images interne :
- Ceph, un système de fichiers partagé et distribué et un système de stockage d'objets sur site
- NooBaa, une passerelle d'objets multicloud
Ce document décrit la procédure à suivre pour configurer le registre d'images afin d'utiliser le stockage CephFS.
CephFS utilise le stockage par revendication de volume persistant (PVC). Il n'est pas recommandé d'utiliser les PVC pour le stockage des registres d'images s'il existe d'autres options, telles que Ceph RGW ou Noobaa.
Conditions préalables
-
Vous avez accès au cluster en tant qu'utilisateur ayant le rôle
cluster-admin
. - Vous avez accès à la console web de OpenShift Container Platform.
-
Vous avez installé le CLI
oc
. - Vous avez installé OpenShift Data Foundation Operator pour fournir le stockage d'objets et le stockage de fichiers CephFS.
Procédure
Créez un PVC pour utiliser la classe de stockage
cephfs
. Par exemple :cat <<EOF | oc apply -f - apiVersion: v1 kind: PersistentVolumeClaim metadata: name: registry-storage-pvc namespace: openshift-image-registry spec: accessModes: - ReadWriteMany resources: requests: storage: 100Gi storageClassName: ocs-storagecluster-cephfs EOF
Configurez le registre d'images pour utiliser le système de stockage de fichiers CephFS en entrant la commande suivante :
$ oc patch config.image/cluster -p '{"spec":{"managementState":"Managed","replicas":2,"storage":{"managementState":"Unmanaged","pvc":{"claim":"registry-storage-pvc"}}}}' --type=merge