4.5.4.3. 配置 Dedicated Infrastructure 节点
建议您在生产环境中使用专用基础架构节点来运行 registry 和路由器 Pod,这样可以使它们独立于用于用户应用程序的 Pod。
openshift_router_selector
和 openshift_registry_selector
Ansible 设置决定了在放置 registry 和路由器 Pod 时使用的标签选择器。默认情况下,它们被设置为 node-role.kubernetes.io/infra=true
:
# default selectors for router and registry services # openshift_router_selector='node-role.kubernetes.io/infra=true' # openshift_registry_selector='node-role.kubernetes.io/infra=true'
registry 和路由器只能在使用 node-role.kubernetes.io/infra=true
标签的节点主机上运行,这些标签被视为专用基础架构节点。确保 OpenShift Container Platform 环境中至少有一个节点主机具有 node-role.kubernetes.io/infra=true
标签。您可以使用默认 node-config-infra 设置这个标签:
[nodes] infra-node1.example.com openshift_node_group_name='node-config-infra'
如果 [nodes]
部分中没有与选择器设置匹配的节点,则默认路由器和 registry 将部署失败并带有 Pending
状态。
如果您不打算使用 OpenShift Container Platform 管理 registry 和路由器,请配置以下 Ansible 设置:
openshift_hosted_manage_registry=false openshift_hosted_manage_router=false
如果使用默认 registry.redhat.io
以外的镜像 registry,则必须在 /etc/ansible/hosts 文件中 指定 registry。
如在 Master 中配置调度功能 所述,master 主机默认标记为可调度。如果标记了带有 node-role.kubernetes.io/infra=true
的 master 主机,且没有其他专用基础架构节点,则 master 主机还必须标记为可以调度。否则,registry 和路由器 Pod 将无法放置到任何节点。
您可以使用默认的 node-config-master-infra 节点组来实现这一目的:
[nodes] master.example.com openshift_node_group_name='node-config-master-infra'