ansible执行k8s命令报错

在服务器上,收到使用 k8s 命令正常。

使用 ansible shell 模块执行命令时,异常。

现象

在服务器上,收到使用 k8s 命令正常:

1
2
3
$ sudo kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.233.0.1 <none> 443/TCP 14d

使用 ansible shell 模块执行命令时,异常:

1
2
3
4
5
$ ansible -i  hosts NODE1 -m shell -a 'sudo kubectl get svc'
[WARNING]: Consider using 'become', 'become_method', and 'become_user' rather than running sudo

NODE1 | FAILED | rc=1 >>
The connection to the server localhost:8080 was refused - did you specify the right host or port?non-zero return code

解决过程

直接搜索异常,解决方案如下:

1
2
3
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

但是,手动执行命令是正常的,所以不是这个问题。

在 so 上看到了这个方法:

解决方法

执行命令时,指定配置文件

1
$ ansible -i  hosts NODE1 -m shell -a 'sudo kubectl get svc --kubeconfig=/opt/conf/kubernetes/admin.conf'

配置路径修改为自己的配置文件路径即可。


参考:

hoxis wechat
一个脱离了高级趣味的程序员,关注回复1024有惊喜~
赞赏一杯咖啡
  • 本文作者: hoxis | 微信公众号【不正经程序员】
  • 本文链接: https://hoxis.github.io/k8s-ansible-error.html
  • 版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 许可协议。转载请注明出处!
  • 并保留本声明和上方二维码。感谢您的阅读和支持!
0%