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

执行hal deploy apply时提示kubeconfig无指定用户的问题求助

问题:执行hal deploy apply时报错No user named 'my_user/api-kcs-cluster-com:port' exists,但该用户已在kubeconfig中定义

通过Docker运行Halyard容器部署Spinnaker时,执行hal deploy apply遇到如下错误:

!ERROR No user named 'my_user/api-kcs-cluster-com:port' exists in your kubeconfig file.

但该用户已在kubeconfig文件中定义,相关配置信息如下:

Kubeconfig文件(/root/.kube/config)

apiVersion: v1
clusters:
- cluster:
    certificate-authority: /usr/share/ca-certificates/mozilla/mycert
    server: https://api.kcs.cluster.com:port
  name: api-kcs-cluster-com:port
contexts:
- context:
    cluster:  api-kcs-cluster-com:port
    namespace: dev
    user: my_user/api-kcs-cluster-com:port
  name: dev/ api-kcs-cluster-com:port/my_user
current-context: dev/api-kcs-cluster-com:port/my_user
kind: Config
preferences: {}
user:
- name: my_user/api-kcs-cluster-com:port
  user:
     token: *******

Kubernetes Provider Hal配置

kubernetes:
    enabled: true
    accounts:
    - name: my_user
      requiredGroupMembership: []
      permissions: {}
      dockerRegistries: []
      providerVersion: V2
      configureImagePullSecrets: true
      cacheThreads: 1
      namespaces:
      - dev
      omitNamespaces: []
      kinds: []
      omitKinds: []
      customResources: []
      cachingPolicies: []
      kubeconfigFile: /root/.kube/config
      rawResourcesEndpointConfig:
        kindExpressions: []
        omitKindExpressions: []
      oAuthScopes: []
      onlySpinnakerManaged: false
    primaryAccount: my_user

解决方案

1. 修复kubeconfig的语法错误(核心问题)

你的kubeconfig文件存在规范错误:Kubernetes kubeconfig中用户列表的字段应为复数users,但你写成了单数user,这会导致Halyard无法正确解析用户条目。

修正后的kubeconfig对应片段:

kind: Config
preferences: {}
users:  # 将原有的`user:`改为`users:`
- name: my_user/api-kcs-cluster-com:port
  user:
     token: *******

2. 验证kubeconfig有效性

在Halyard容器内执行以下命令,确认kubeconfig能被正确解析:

kubectl --kubeconfig /root/.kube/config config get-credentials my_user/api-kcs-cluster-com:port

若命令能返回脱敏后的用户token配置,说明kubeconfig解析正常。

3. 检查容器内kubeconfig的权限与路径

确保Halyard容器内/root/.kube/config文件存在且可读取:

# 检查文件存在性
ls -l /root/.kube/config
# 检查文件内容(确认配置正确加载)
cat /root/.kube/config

若文件不存在,需确认挂载路径是否正确;若权限不足,执行chmod 600 /root/.kube/config调整权限(kubeconfig文件要求权限为600)。

4. 可选:在Hal配置中显式指定上下文/用户/集群

如果修复kubeconfig后仍有问题,可在Hal配置的kubernetes.account中添加明确配置,强制Halyard使用指定条目:

kubernetes:
    enabled: true
    accounts:
    - name: my_user
      # 添加以下配置之一或全部
      context: dev/api-kcs-cluster-com:port/my_user
      user: my_user/api-kcs-cluster-com:port
      cluster: api-kcs-cluster-com:port
      # 其他原有配置...

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 16:05:33