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

Spinnaker中AKS账户未在UI显示的问题排查求助

排查Spinnaker Kubernetes V2账户不显示及Clouddriver异常问题

看起来你的核心问题是Kubernetes账户无法在Spinnaker UI加载,伴随Clouddriver的超时、空指针错误,以及Redis配置异常,我会一步步帮你定位解决:

1. 优先修复Redis配置缺失问题

从hal deploy diff的输出可以明确看到,Redis的host和port被置为null了——这会直接导致Clouddriver无法缓存账户信息,甚至健康检查失败,是首要解决的问题:

# 重新配置Redis连接信息
hal config persistentStorage redis edit --host localhost --port 6379
# 应用配置并重启服务
sudo hal deploy apply

之后确认Redis服务正常运行:

sudo systemctl status redis-server
# 如果未运行则启动
sudo systemctl start redis-server

2. 验证Kubernetes集群的连通性

Clouddriver无法获取账户信息,大概率是和K8s集群的连接出了问题:

  • 首先在Spinnaker服务器上,用运行Halyard的用户执行kubectl get nodes,确认kubeconfig的有效性——如果这个命令失败,说明你的AKS凭证有问题,需要重新执行az aks get-credentials --resource-group xxx --name xxx并验证权限。
  • 测试Clouddriver进程能否访问K8s API服务器:
    # 替换成你的K8s server地址
    curl -v https://xxx:443 --cacert <(echo "xxx" | base64 --decode)
    
    如果连接超时或证书错误,需要检查服务器网络策略、AKS的API服务器白名单,或者kubeconfig里的证书数据是否完整。

3. 修复Kubernetes V2账户的权限与配置细节

Spinnaker V2账户对权限要求更严格,建议创建专用的ServiceAccount并授予足够权限:

# 创建spinnaker命名空间(如果不存在)
kubectl create namespace spinnaker

# 应用ServiceAccount和ClusterRoleBinding
cat <<EOF | kubectl apply -f -
apiVersion: v1
kind: ServiceAccount
metadata:
  name: spinnaker-service-account
  namespace: spinnaker
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: spinnaker-role-binding
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: admin
subjects:
- kind: ServiceAccount
  name: spinnaker-service-account
  namespace: spinnaker
EOF

然后获取该ServiceAccount的token,更新到你的Spinnaker账户配置:

SECRET_NAME=$(kubectl get serviceaccount spinnaker-service-account -n spinnaker -o jsonpath='{.secrets[0].name}')
TOKEN=$(kubectl get secret $SECRET_NAME -n spinnaker -o jsonpath='{.data.token}' | base64 --decode)

# 重新配置K8s账户,使用新的token
hal config provider kubernetes account add my-k8s-v2-account --provider-version v2 --context $CONTEXT --token $TOKEN
sudo hal deploy apply

4. 重启并验证Clouddriver服务

修复上述配置后,重启Clouddriver并检查状态:

sudo systemctl restart clouddriver
# 实时查看Clouddriver日志,确认没有新的错误
journalctl -u clouddriver -f

等待服务启动完成后,再次尝试访问Clouddriver的credentials接口:

curl http://localhost:7002/credentials

如果返回包含你的K8s账户信息的JSON,说明连接问题已解决,此时刷新Spinnaker UI应该就能看到账户了。

5. 补充检查Spinnaker服务状态

最后确认所有核心服务正常运行:

sudo systemctl status gate clouddriver deck

确保Gate(8084)、Deck(9000)、Clouddriver(7002)都处于active (running)状态。

内容的提问来源于stack exchange,提问作者Jaydeep Soni

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:53:21