通过ssh远程执行kubectl命令报错问题


在使用Jenkins链接Kubernetes集群,如果Jenkins安装机器与Kubernetes Master节点不在同一台机器上面,需要使用ssh远程执行部署命令,如下:

ssh root@10.170.129.153 -p 60022 'kubectl apply -f deploynetcore.yaml'

执行时会出现8080拒绝访问错误,信息如下:

The connection to the server localhost:8080 was refused - did you specify the right host or port?

是因为使用ssh执行命令和登录后执行Linux所加载的环境变量不同,在使用ssh执行命令时没有加载/etc/profile的环境变量,对此,可参考这篇文章:https://www.jianshu.com/p/f24c7445c4db

将/etc/profile目录下kubernetes对应的环境变量添加到/root/.bashrc文件内即可,添加后内容如下,此时在执行时可以正常。

# .bashrc

# User specific aliases and functions

alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'

# Source global definitions
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi

export KUBECONFIG=/etc/kubernetes/admin.conf


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM