内部注册表适合使用对象存储作为存储镜像实际数据的持久存储。
实施步骤分为三个步骤:
- 创建 OBC
- 创建 Secret
- 更改内部注册表配置
创建 OBC
在 openshift-image-registry 项目中创建内部注册表需要使用的 OBC 资源,资源定义参考如下:
1 2 3 4 5 6 7 8 9 10
| apiVersion: objectbucket.io/v1alpha1 kind: ObjectBucketClaim metadata: name: obc-registry namespace: openshift-image-registry spec: additionalConfig: bucketclass: noobaa-default-bucket-class generateBucketName: obc-registry storageClassName: openshift-storage.noobaa.io
|
创建 OBC:
1
| oc apply -f obc-registry.yaml
|
验证:
1 2 3
| oc get obc NAME STORAGE-CLASS PHASE AGE obc-registry openshift-storage.noobaa.io Bound 79s
|
创建 Secret
将伴随 obc-registry 创建的 secret 进行提取:
1 2 3 4 5 6 7
| oc get secrets -l app=noobaa -n openshift-image-registry NAME TYPE DATA AGE obc-registry Opaque 2 2m13s
oc extract secret/obc-registry -n openshift-image-registry AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY
|
使用 AWS_KEY_ID 和 AWS_SECRET_ACCESS_KEY 文件的内容来创建 image-registry-private-configureation-user 的 secret:
1 2 3 4 5 6
| oc create secret generic \ image-registry-private-configuration-user \ --from-literal=REGISTRY_STORAGE_S3_ACCESSKEY="$(cat AWS_ACCESS_KEY_ID)" \ --from-literal=REGISTRY_STORAGE_S3_SECRETKEY="$(cat AWS_SECRET_ACCESS_KEY)" \ -n openshift-image-registry secret/image-registry-private-configuration-user created
|
更改内部注册表配置
获取创建的 OBC 对应的 Bucket 名称:
1 2
| oc get -n openshift-image-registry objectbucketclaim/obc-registry -o jsonpath='{.spec.bucketName}{"\n"}' obc-registry-0d8fecac-673b-4ef4-9387-de5083631658
|
编写 patch 文件:
1 2 3 4 5 6 7 8 9 10 11 12
| apiVersion: imageregistry.operator.openshift.io/v1 kind: Config metadata: name: cluster spec: storage: managementState: Managed pvc: null s3: bucket: obc-registry-0d8fecac-673b-4ef4-9387-de5083631658 region: us-east-1 regionEndpoint: <S3 对应的路由>
|
对镜像注册表应用 patch 文件:
1 2
| oc patch configs.imageregistry.operator.openshift.io cluster --type=merge --patch-file=patch.yaml config.imageregistry.operator.openshift.io/cluster patched
|
评论· · · · · ·