5.5. 在基础架构节点上部署 Red Hat Quay
默认情况下,在使用 Red Hat Quay Operator 部署 registry 时,Quay 相关的 pod 会放置在任意 worker 节点上。有关如何使用机器集将节点配置为仅托管基础架构组件的更多信息,请参阅 创建基础架构机器集。
如果您不使用 OpenShift Container Platform 机器集资源来部署 infra 节点,本文档中的部分演示了如何手动标记和污点节点用于基础架构目的。在手动配置基础架构节点或使用机器集后,您可以使用节点选择器和容限来控制在这些节点上放置 Quay pod。
5.5.1. 为基础架构使用标记和污点节点 复制链接链接已复制到粘贴板!
使用以下步骤为基础架构使用标记和包含节点。
输入以下命令显示 master 和 worker 节点。在本例中,有三个 master 节点和 6 个 worker 节点。
oc get nodes
$ oc get nodesCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输入以下命令为基础架构使用标记三个 worker 节点:
oc label node --overwrite user1-jcnp6-worker-c-pwxfp.c.quay-devel.internal node-role.kubernetes.io/infra=
$ oc label node --overwrite user1-jcnp6-worker-c-pwxfp.c.quay-devel.internal node-role.kubernetes.io/infra=Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc label node --overwrite user1-jcnp6-worker-d-h5tv2.c.quay-devel.internal node-role.kubernetes.io/infra=
$ oc label node --overwrite user1-jcnp6-worker-d-h5tv2.c.quay-devel.internal node-role.kubernetes.io/infra=Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc label node --overwrite user1-jcnp6-worker-d-m9gg4.c.quay-devel.internal node-role.kubernetes.io/infra=
$ oc label node --overwrite user1-jcnp6-worker-d-m9gg4.c.quay-devel.internal node-role.kubernetes.io/infra=Copy to Clipboard Copied! Toggle word wrap Toggle overflow 现在,当列出集群中的节点时,最后三个 worker 节点具有
infra角色。例如:oc get nodes
$ oc get nodesCopy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 当为 worker 节点分配
infra角色时,用户工作负载可能会意外地分配给 infra 节点。要避免这种情况,您可以将污点应用到 infra 节点,然后为您要控制的 pod 添加容限。例如:oc adm taint nodes user1-jcnp6-worker-c-pwxfp.c.quay-devel.internal node-role.kubernetes.io/infra:NoSchedule
$ oc adm taint nodes user1-jcnp6-worker-c-pwxfp.c.quay-devel.internal node-role.kubernetes.io/infra:NoScheduleCopy to Clipboard Copied! Toggle word wrap Toggle overflow oc adm taint nodes user1-jcnp6-worker-d-h5tv2.c.quay-devel.internal node-role.kubernetes.io/infra:NoSchedule
$ oc adm taint nodes user1-jcnp6-worker-d-h5tv2.c.quay-devel.internal node-role.kubernetes.io/infra:NoScheduleCopy to Clipboard Copied! Toggle word wrap Toggle overflow oc adm taint nodes user1-jcnp6-worker-d-m9gg4.c.quay-devel.internal node-role.kubernetes.io/infra:NoSchedule
$ oc adm taint nodes user1-jcnp6-worker-d-m9gg4.c.quay-devel.internal node-role.kubernetes.io/infra:NoScheduleCopy to Clipboard Copied! Toggle word wrap Toggle overflow
5.5.2. 使用节点选择器和容限创建项目 复制链接链接已复制到粘贴板!
使用以下步骤创建带有节点选择器和容限的项目。
如果您已经使用 Operator 部署 Red Hat Quay,请删除已安装的 Operator 以及您为部署创建的任何特定命名空间。
步骤
创建项目资源,指定节点选择器和容限。例如:
quay-registry.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来创建项目:
oc apply -f quay-registry.yaml
$ oc apply -f quay-registry.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
project.project.openshift.io/quay-registry created
project.project.openshift.io/quay-registry createdCopy to Clipboard Copied! Toggle word wrap Toggle overflow
quay-registry 命名空间中创建的后续资源现在应调度到专用基础架构节点上。
5.5.3. 在命名空间中安装 Red Hat Quay Operator 复制链接链接已复制到粘贴板!
使用以下步骤在命名空间中安装 Red Hat Quay Operator。
要在特定命名空间中安装 Red Hat Quay Operator,您必须明确指定适当的项目命名空间,如以下命令所示。在本例中,我们使用
quay-registry。ths 会导致 Operator pod 登录三个基础架构节点之一。例如:oc get pods -n quay-registry -o wide
$ oc get pods -n quay-registry -o wideCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME READY STATUS RESTARTS AGE IP NODE quay-operator.v3.4.1-6f6597d8d8-bd4dp 1/1 Running 0 30s 10.131.0.16 user1-jcnp6-worker-d-h5tv2.c.quay-devel.internal
NAME READY STATUS RESTARTS AGE IP NODE quay-operator.v3.4.1-6f6597d8d8-bd4dp 1/1 Running 0 30s 10.131.0.16 user1-jcnp6-worker-d-h5tv2.c.quay-devel.internalCopy to Clipboard Copied! Toggle word wrap Toggle overflow
5.5.4. 创建 Red Hat Quay registry 复制链接链接已复制到粘贴板!
使用以下步骤创建 Red Hat Quay registry。
运行以下命令来创建 Red Hat Quay registry。然后,等待部署标记为
就绪。在以下示例中,您应看到它们仅调度到为基础架构目的标记的三个节点上。oc get pods -n quay-registry -o wide
$ oc get pods -n quay-registry -o wideCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow