3.4. 扩展自动化控制器 API 服务的注意事项
自动化控制器 API 服务处理应用程序的 HTTP 请求,包括自动化控制器中用户角色的信息、项目创建、清单创建或更新、作业启动和作业结果检查。
3.4.1. 主要性能指标 复制链接链接已复制到粘贴板!
自动化控制器 API 服务的主要性能指标包括:
-
/api/controller下请求的高 API 延迟 - API pod 或节点上的高 CPU 使用率
-
平台网关返回
503错误,因为该服务太忙于响应健康检查
自动化控制器 API 服务位于基于 Operator 的安装上的 web pod 中,并在基于虚拟机的安装或基于容器的安装中控制或混合节点。
3.4.2. 根据部署类型扩展策略 复制链接链接已复制到粘贴板!
请考虑以下策略来扩展自动化控制器 API 服务:
-
OpenShift Container Platform:调整
AutomationControllerCR 上的web_replicas属性。扩展replicas属性可扩展任务和 Web 副本。 - 基于虚拟机的安装和基于容器的安装:扩展控制或混合节点,增加控制其他自动化作业的能力。
3.4.3. 数据库连接和架构注意事项 复制链接链接已复制到粘贴板!
在 OpenShift Container Platform 中,每个 web 副本都会消耗 WSGI Web 服务 worker 的数据库连接,以及有助于任务通信和 WebSocket 的各种后台服务。基于虚拟机的安装和基于容器的安装上使用的 WSGI Web 服务器使用的数据库连接数可使用计算机的 CPU 计数进行扩展。另外,控制和混合节点管理 Dispatcher (任务系统)和 Callback Receiver (作业事件处理 worker 池)。这些 worker 池通过 CPU 可用性进行扩展,并需要数据库连接。
与在 OpenShift Container Platform 上扩展 Web 部署相比,置备额外的控制节点需要更多的数据库连接。这是因为容器化和 RPM 控制节点扩展也会扩展任务系统,这作为 OpenShift Container Platform 上的不同部署运行。这种在 OpenShift Container Platform 部署中分离的服务是重要的区别,管理员可以更精细地微调部署并节省有限资源,如数据库连接。
3.4.4. 在 OpenShift Container Platform 上扩展的特殊注意事项 复制链接链接已复制到粘贴板!
特别重要的是,在 OpenShift Container Platform 中可以水平扩展该服务,因为如果超过 100 个请求,则这些请求会被 uWSGI 丢弃。这会导致客户端收到丢弃请求的超时时间。以下日志文本为这个事件提供对应的错误:
*** uWSGI listen queue of socket ":8000" (fd: 3) full !!! (101/100) ***
发生此错误的原因是 uWSGI 将其积压到内核参数 somaxconn 的限制。可以在 OpenShift Container Platform 中提高这个内核参数,但这样做需要允许"unsafe sysctls"。