安装前验证

在安装前验证模型连接性、凭证、证书和配置设置,以识别并解决模型网关问题,避免在部署 Bob 本地版时出现问题。

在安装 Bob 本地版之前,验证模型端点、身份验证凭证、TLS 证书和模型网关配置是否已正确配置,并且可以从目标 OpenShift 集群访问。执行这些验证检查有助于在部署前识别连接问题、无效凭证、证书信任问题和配置错误,从而减少安装失败和故障排查工作。

在执行 bobctl install 之前,完成此清单,以便尽早发现缺失的配置。

模型端点连接测试

在部署任何 Bob 组件之前,确认 OpenShift 集群可以访问每个模型端点。在目标命名空间中启动一个临时调试 pod,直接测试 HTTPS 可达性:

# openai_compatible
oc run curl-test --image=curlimages/curl --restart=Never --rm -it -- \
  curl -v https://<model-endpoint>/v1/models

# bedrock
oc run curl-test --image=curlimages/curl --restart=Never --rm -it -- \
  curl -k https://bedrock.<AWS_REGION>.amazonaws.com/foundation-models \
  --aws-sigv4 "aws:amz:${REGION}:bedrock" \
  --user "$AWS_ACCESS_KEY_ID:$AWS_SECRET_ACCESS_KEY"

对于 openai_compatible 端点,针对模型网关配置中的 base_url 值进行测试。对于气隙或私有基础设施,这是验证连接性的唯一方式,因为从设计上不具备外部可达性。

身份验证验证

在将凭证编码为 config.yaml 中的 Secret 之前验证凭证。错误的凭证会导致推理服务启动失败,通常伴随难以理解的日志消息。

  • openai_compatible — 直接从调试 pod 测试 API 密钥:

    curl -s https://<base_url>/v1/models \
      -H "Authorization: Bearer <api_key>" | jq '.data[].id'
  • bedrock — 在将 AWS_ACCESS_KEY 和 AWS_SECRET_ACCESS_KEY 添加到 config.yaml 之前,使用 AWS CLI 验证这些值:

    aws bedrock list-foundation-models --region us-east-1
  • vertex — 解码 GEMINI_CREDENTIALS 的 base64 值,并在提供之前确认它是有效的服务账号 JSON:

    base64 -d <<< "$GEMINI_CREDENTIALS" | jq '.type'
    # Expected output: "service_account"

TLS 证书验证

如果对 openai_compatible 端点使用 ca_cert_pem,在将证书作为 Secret 提供之前验证它。

验证证书是 PEM 编码且未过期:

echo "<cert content>" | openssl x509 -noout -dates

确认证书与端点的 CA 链匹配:

openssl s_client -connect <host>:<port> -CAfile ca.pem
警告:

insecure_skip_verify: true 只能在初始连接调试期间临时使用。上线前请将其移除。如果 ca_cert_pem 引用的环境变量不存在于 bob.modelGateway.secrets 中,推理服务会成功启动,但 TLS 在推理时会失败。

模型发现验证

确认提供商块中的 model ID 与提供商公开的模型完全匹配。不匹配会导致推理时出现 404 或模型未找到错误,而非启动时报错。

对于 openai_compatible 端点,在安装前检查可用的模型 ID:

curl -s https://<base_url>/v1/models \
  -H "Authorization: Bearer <api_key>" | jq '.data[].id'

常见错误配置检查

错误配置症状检查方式
模型配置中的 Secret 名称与 config.yaml secrets 块中的密钥不匹配请求时身份验证失败,而非启动时对比模型配置中的每个 env.* 引用与 bob.modelGateway.secrets 的密钥
GEMINI_CREDENTIALS 未进行 base64 编码Vertex 提供商在启动时解析凭证失败运行 base64 -d <<< "$VALUE" 并确认它是具有 "type": "service_account" 的有效 JSON
base_url 包含尾部 / 或路径后缀提供商返回 404去除尾部斜杠——网关会自行追加 /v1/chat/completions 等路径
models 列表中存在重复的 model_name 值路由行为未定义确保配置中所有 model_name 值均唯一
运行 bobctl install 时未指定 --model-config网关为空,无法进行推理确认已传入 --model-config 且文件在指定路径可读
ca_cert_pem 环境变量在模型配置中已定义但在 secrets 中缺失推理时 TLS 失败交叉检查模型配置中的每个 env.* 引用与 secrets 块
这个主题怎么样?