《OpenShift 4.x HOL教程汇总》
说明:本文已经在OpenShift 4.10 环境中验证
由于新版 Quay 需要使用 OpenShift Data Foundation 提供对象存储,本文是针对新版 Quay Operator 3.7.4 安装说明修正。
注意:本文的 ODF 采用是非正式的变通方式部署运行。
安装配置 OpenShift Data Foundation
安装 ODF Operator
使用默认配置将 OpenShift Data Foundation Operator 安装到 openshift-storage 项目中。
配置 Noobaa
- 执行以下命令创建 NooBaa 对象。
$ cat << EOF | oc apply -f -
apiVersion: noobaa.io/v1alpha1
kind: NooBaa
metadata:
name: noobaa
namespace: openshift-storage
spec:
dbResources:
requests:
cpu: '0.1'
memory: 1Gi
dbType: postgres
coreResources:
requests:
cpu: '0.1'
memory: 1Gi
EOF
- 执行命令创建 BackingStore 对象。其中 gp2 是 OpenShift 集群中已有的 StorageClass 名称。
$ cat << EOF | oc apply -f -
apiVersion: noobaa.io/v1alpha1
kind: BackingStore
metadata:
finalizers:
- noobaa.io/finalizer
labels:
app: noobaa
name: noobaa-pv-backing-store
namespace: openshift-storage
spec:
pvPool:
numVolumes: 2
resources:
requests:
storage: 300Gi
storageClass: gp2
type: pv-pool
EOF
- 部署完后可以查看部署好的资源。
$ oc get pod
NAME READY STATUS RESTARTS AGE
csi-addons-controller-manager-58765ffdb9-l9r4h 2/2 Running 0 25m
noobaa-core-0 1/1 Running 0 25m
noobaa-db-pg-0 1/1 Running 0 25m
noobaa-endpoint-76b76b7457-lbnww 1/1 Running 0 11m
noobaa-operator-6c8b57f6f7-5qq2v 1/1 Running 0 26m
noobaa-pv-backing-store-noobaa-pod-05a665d4 1/1 Running 0 11m
noobaa-pv-backing-store-noobaa-pod-d7fd9e71 1/1 Running 0 11m
ocs-metrics-exporter-8488bdfbc5-648qg 1/1 Running 0 26m
ocs-operator-8499fdf689-slrdb 1/1 Running 0 26m
odf-console-65f5595bb9-z4hz8 1/1 Running 0 26m
odf-operator-controller-manager-77b4fc5c49-89tfd 2/2 Running 0 26m
rook-ceph-operator-9795c956f-lh8gt 1/1 Running 0 26m
4. 执行命令更新 bucketclass。
$ oc get bucketclass
NAME PLACEMENT NAMESPACEPOLICY QUOTA PHASE AGE
noobaa-default-bucket-class {"tiers":[{"backingStores":["noobaa-default-backing-store"]}]} Ready 2m28s
$ oc patch bucketclass noobaa-default-bucket-class --patch '{"spec":{"placementPolicy":{"tiers":[{"backingStores":["noobaa-pv-backing-store"]}]}}}' --type merge -n openshift-storage
安装 Quay
- 使用默认配置将 Quay Operator 安装到所有命名空间。
- 创建名为 redhat-quay 的项目。
- 执行命令创建 QuayRegistry 实例。完成后可以在 OpenShift 的开发者视图中看到下图的部署拓扑。
$ cat << EOF | oc apply -f -
apiVersion: quay.redhat.com/v1
kind: QuayRegistry
metadata:
name: example-registry
namespace: redhat-quay
spec:
{}
EOF
注意:在部署过程中有可能会在事件中提示申请资源超过 LimitRange。此时可以进入控制台的 “管理”-“限制范围” 菜单,然后删除对应的 LimitRange 即可。
- 执行命令获得 Quay 控制台访问地址。
$ QUAY_HOST=$(oc get route example-registry-quay -n redhat-quay -o jsonpath='{.spec.host}')
- 在浏览器中打开上一步 QUAY_HOST 变量中的地址,然后在控制台中创建名为 quayadmin 的账户即可。
验证测试 Quay
- 获得 hello-openshift 镜像到本地。
$ podman pull docker.io/openshift/hello-openshift
Trying to pull docker.io/openshift/hello-openshift:latest...
Getting image source signatures
Copying blob 4f4fb700ef54 done
Copying blob 8b32988996c5 done
Copying config 7af3297a3f done
Writing manifest to image destination
Storing signatures
7af3297a3fb4487b740ed6798163f618e6eddea1ee5fa0ba340329fcae31c8f6
- 对镜像重新打标签。
podman tag docker.io/openshift/hello-openshift ${QUAY_HOST}/quayadmin/hello-openshift:latest
- 登录 Quay 后将本地镜像推送到 Quay上。
$ podman login ${QUAY_HOST} --username=quayadmin --password=<YOUR-PASSWORD>
Login Succeeded!
$ podman push ${QUAY_HOST}/quayadmin/hello-openshift:latest
Getting image source signatures
Copying blob 5f70bf18a086 done
Copying blob da0e4d9121c7 done
Copying config 7af3297a3f done
Writing manifest to image destination
Storing signatures
- 最后可以在 Quay 中确认已经有了 hello-openshift 镜像。
参考
https://github.com/liuxiaoyu-git/OpenShift-Labs/tree/main/userOperators/Quay
https://github.com/liuxiaoyu-git/ocp-quay-demo
版权声明:本文为weixin_43902588原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。