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

Ansible部署单节点k3s集群时遇kube-config无效配置未找到错误

解决Ansible部署k3s集群时的kube-config配置问题

问题排查与修复步骤

1. 指定k3s专属的kubeconfig路径

k3s的kubeconfig默认存储在/etc/rancher/k3s/k3s.yaml,而非通用的~/.kube/config。在Ansible任务中明确指定该路径:

kubernetes.core.k8s:
  state: present
  src: deployment.yml
  kubeconfig: /etc/rancher/k3s/k3s.yaml

由于任务使用了become: yes,root用户默认拥有该文件的读取权限(k3s默认给k3s.yaml设置600权限)。

2. 避免api_key与kubeconfig同时配置

同时提供api_key和kubeconfig会导致模块优先级冲突,直接移除api_key参数,让模块从kubeconfig中自动读取认证信息:

kubernetes.core.k8s:
  state: present
  src: deployment.yml
  kubeconfig: /etc/rancher/k3s/k3s.yaml

3. 验证kubeconfig文件有效性

在目标主机上执行以下命令,确认kubeconfig可用:

kubectl --kubeconfig /etc/rancher/k3s/k3s.yaml get nodes

如果命令返回节点信息,说明文件正常;若失败,可重启k3s服务或重新安装k3s以生成正确的kubeconfig。

4. 指定kubeconfig上下文(可选)

若kubeconfig包含多个上下文,需明确指定默认上下文:

kubernetes.core.k8s:
  state: present
  src: deployment.yml
  kubeconfig: /etc/rancher/k3s/k3s.yaml
  context: default

可通过以下命令确认上下文名称:

kubectl config get-contexts --kubeconfig /etc/rancher/k3s/k3s.yaml

5. 明确本地deployment文件路径

确保Ansible能正确读取本地的deployment.yml,使用playbook_dir变量指定绝对路径:

kubernetes.core.k8s:
  state: present
  src: "{{ playbook_dir }}/deployment.yml"
  kubeconfig: /etc/rancher/k3s/k3s.yaml

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 21:16:08