推理服务无法进入运行状态

目录

问题描述

部署推理服务后,服务长时间处于非运行状态。在 Alauda Container PlatformWorkloads 视图中未创建对应的 Pod,但相关的 Deployment 资源已成功创建。

在该 Deployment实时事件 中,观察到类似的错误信息:

FailedCreate: Error creating: pods "gpt2-predictor-f677f684f-sjwq7" is forbidden: violates PodSecurity "baseline:latest": host namespaces (hostIPC=true)

根因分析

该问题由 Kubernetes 集群中启用的 Pod Security Admission 机制引起,且该机制采用了较为严格的安全策略。当推理服务的 Pod 试图使用特权功能(例如 host namespaces,如 hostIPC=true)时,策略会阻止其创建,以防止潜在的安全风险。

本例中,使用 hostIPC=true 违反了 "baseline" Pod Security Standard,该标准明确禁止使用 host namespaces,以确保 Pod 之间的隔离。

解决方案

为解决此问题,建议首先检查推理服务的配置。如果运行时不严格需要 hostIPC: true 等特权模式,最安全的做法是修改工作负载配置,移除这些特权需求,从而在不降低安全性的前提下解决问题。

如果工作负载确实需要这些特权功能,请按以下步骤调整安全策略等级:

  1. 进入 Projects 视图,选择包含推理服务的 Project
  2. Namespace 列表中,找到服务所在的命名空间,点击该行右侧的 "..." 按钮。
  3. 在下拉菜单中选择 Update Pod Security Admission
  4. 在弹出窗口中,将所有三种安全模式(EnforceAuditWarn)的 Security Standard 设置为 Privileged
  5. 点击 Update 保存更改。

总结

推理服务 Pod 启动失败,通常是因为其配置违反了命名空间的 Pod 安全策略。通过将该 namespacePod Security Admission 级别调整为 Privileged,即可允许推理服务 Pod 成功创建并运行。