Ansible连接AKS集群报错:加载kubeconfig缺少Loader参数
解决Ansible管理AKS集群时kubeconfig加载失败的问题
报错原因
这个错误是由于Ansible的k8s系列模块与依赖的kubernetes Python库版本不兼容导致的。新版本的kubernetes库(v26及以上)修改了kubeconfig的load()方法,新增了必填的Loader参数,但旧版本的Ansible模块没有适配这个变更,从而触发报错。
解决方案
- 先检查当前安装的
kubernetes库版本:pip show kubernetes - 降级
kubernetes库到与Ansible版本兼容的版本,例如Ansible 2.14及以下版本推荐安装kubernetes<=25.3.0:pip install kubernetes==25.3.0 --force-reinstall - 验证kubeconfig文件有效性:先通过
kubectl get pods确认本地的~/.kube/config能正常访问AKS集群,排除配置文件本身的问题。 - 可选优化:playbook中可以省略
kubeconfig参数,Ansible默认会读取~/.kube/config路径的配置文件,避免路径解析问题:--- - hosts: localhost tasks: - k8s_info: kind: pod register: pod_list
内容的提问来源于stack exchange,提问作者sudhir karamchand
相关产品推荐
相关产品推荐

