在使用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