You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

已配置Azure AD认证与正确权限,但KEDA Azure Service Bus ScaledObject仍提示“no connection setting given”失败

已配置Azure AD认证与正确权限,但KEDA Azure Service Bus ScaledObject仍提示“no connection setting given”失败

我之前也踩过一模一样的坑!从你的描述来看,整体配置方向是对的,但大概率是Secret键名拼写错误或者参数映射没对应上,咱们一步步排查:

  • 先揪出最容易犯的手误:Secret里的键名拼写
    你提到Secret里的键是clinetId——注意!这里少了一个'e',正确的拼写应该是clientId!KEDA在读取Azure AD认证参数时,严格要求使用clientId、clientSecret、tenantId这三个标准键名,拼写错误会直接导致KEDA找不到有效连接配置,触发“no connection setting given”的错误。

  • 验证TriggerAuthentication的映射是否完全匹配
    要确保TriggerAuthentication的secretTargetRef里,每个参数的key和Secret里的键名完全一致,parameter对应KEDA期望的参数名。举个正确的配置示例:

    apiVersion: keda.sh/v1alpha1
    kind: TriggerAuthentication
    metadata:
      name: keda-trigger-auth-azure-servicebus
    spec:
      secretTargetRef:
      - parameter: clientId
        name: keda-sp-connection-auth-secret
        key: clientId  # 这里必须和Secret里的键名完全一致
      - parameter: clientSecret
        name: keda-sp-connection-auth-secret
        key: clientSecret
      - parameter: tenantId
        name: keda-sp-connection-auth-secret
        key: tenantId
    

    同时,ScaledObject的trigger部分要正确关联这个认证对象,还要明确指定Service Bus的命名空间:

    triggers:
    - type: azure-servicebus
      metadata:
        queueName: your-target-queue
        namespace: your-servicebus-namespace-name
        messageCount: "10"  # 替换成你的扩缩容阈值
      authenticationRef:
        name: keda-trigger-auth-azure-servicebus
      authenticationMode: azureActiveDirectory
    
  • 确认SecretProviderClass的同步是否生效
    你可以在OpenShift里执行以下命令,检查Secret的实际内容:

    oc get secret keda-sp-connection-auth-secret -o yaml
    

    解码data字段里的内容,确认clientId(不是clinetId)、clientSecret、tenantId这三个键都存在且值正确。如果Secret里还是错误的键名,要修改SecretProviderClass的secretObjects配置,把Key Vault的密钥映射为正确的键名:

    apiVersion: secrets-store.csi.x-k8s.io/v1
    kind: SecretProviderClass
    metadata:
      name: your-spc-name
    spec:
      provider: azure
      secretObjects:
      - data:
        - key: clientId  # 指定Secret里的正确键名
          objectName: kv-client-id  # 替换成Key Vault中存储clientId的密钥名称
        - key: clientSecret
          objectName: kv-client-secret
        - key: tenantId
          objectName: kv-tenant-id
        secretName: keda-sp-connection-auth-secret
        type: Opaque
    
  • 最后检查KEDA版本兼容性
    较旧的KEDA版本(比如v2.7及以下)对Azure Service Bus的AD认证支持有一些小问题,建议确保你的KEDA版本在v2.8以上。可以用这个命令查看版本:

    oc get deployment keda-operator -n keda -o jsonpath='{.spec.template.spec.containers[0].image}' | cut -d: -f2
    

一般来说,修正clinetId到clientId的拼写错误后,这个问题就能解决。如果还是不行,再依次排查映射配置和同步状态就好。

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.07 10:03:05