您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關Rancher 2.0部署過程中常見問題分析與解決方法,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
Rancher 2.0部署與使用過程中常見的問題及其解決方法,多數問題整理收集自Rancher官方技術交流群內用戶的提問與反饋。環境需求
推薦使用的操作系統
Ubuntu 16.04 (64-bit)
Red Hat Enterprise Linux 7.5 (64-bit)
RancherOS 1.3.0 (64-bit)
推薦的硬件配置
支持的docker版本
1.12.6
1.13.1
17.03.02
防火墻請允許通過已下端口
環境信息殘留
目前部署中,大部分問題都是因為由于部署環境的操作系統,或多次部署,升級后殘留的的信息造成的。
部署前或部署時,請使用以下命令將環境的各類信息清理干凈:
df -h|grep kubelet |awk -F % '{print $2}'|xargs umount rm /var/lib/kubelet/* -rf rm /etc/kubernetes/* -rf rm /var/lib/rancher/* -rf rm /var/lib/etcd/* -rf rm /var/lib/cni/* -rf iptables -F && iptables -t nat –F ip link del flannel.1 docker ps -a|awk '{print $1}'|xargs docker rm -f docker volume ls|awk '{print $2}'|xargs docker volume rm
openssh版本過低問題
centos或rhel系統并且版本低于7.4的,因為默認的openssh和openssl和紅帽系ssh默認將AllowTcpForwarding 關閉了,rke部署時會出現如下問題:
參考issue:
https://github.com/rancher/rke/issues/93
需要您進行以下操作:
確保您的openssh版本大于等于7.x
修改sshd配置打開重啟sshd
默認centos和rhel不能使用root用戶進行ssh tunnel,所以需要使用一個普通用戶
并將這個用戶加入docker這個Group,useradd –G docker yourusername
nodeport端口只有一臺機器能訪問
只能訪問一臺宿主機的nodeport,并且還是pod所在那臺機器,出現這種問題很大原因是因為跨集群網絡有問題,或本地防火墻問題。排查思路如下:
1、在宿主機本機telnet localhost:nodeort看看是否能通,本機能通,在集群內互相telnet測試,如果不能通根部署環境網絡有很大關系,建議聯系網絡管理員進行排查。
如果本機telnet也不能通,進行如下測試。
2、首先我們需要或取對應的pod 信息
比如我這個test-6b4cdf4ccb-7pzt6在rancher-kf-worker01節點上,它的ip為10.42.3.23
3、先在pod所在的宿主機上然后在另外幾個節點去ping這個ip,看看能否ping通,在canal網絡模式下,請檢查防火墻端口8472/UDP是否開放。查看每天機器上是否有嘗試使用每臺機器的flannel.1網卡,用的話,用flannel.1上的ip互相ping,看看是否能通,因為flannel網絡和canal網絡是通過flannel.1網卡互相建立vxlan遂道的。建議操作在關閉防火墻的情況下測試。
部署使用calico網絡部署環境失敗問題
部署rancher2.0時網絡類型為calico時,如果cloud provider默認不填會選用公有云的,導致部署失敗,所以這里我們需要手動填寫為none。(后期會優化此項)
部署時主機not found問題
出現這個問題是因為宿主機的主機名不符合kubernetes的標準主機名要求也不符合標準的linux主機名,主機名內不能有下劃線。
獲取組件健康狀態forbidden問題
大部分原因是因為部署多次,證書殘留的導致的,解決辦法,按照環境信息殘留里面的方法把環境清空下,在重新添加。
web頁面kubectl閃退問題
這個主要根操作系統版本和瀏覽器的版本有關系,請使用上推薦使用操作系統中的操作系統,瀏覽器使用Chrome
非worker節點仍然被調度pod問題
目前rancher2.0非worker節點,仍然會被調度pod過去,您可以選擇手動將它們從kube-scheduler踢除,命令如下:
在獲取節點在kubernetes集群的名字
打開web頁面kubectl
然后執行
kubectl taint node rancher-kf-control01 node-role.kubernetes.io/rancher-kf-control01="":NoSchedule kubectl taint node rancher-kf-control02 node-role.kubernetes.io/rancher-kf-control02="":NoSchedule kubectl taint node rancher-kf-control03 node-role.kubernetes.io/rancher-kf-control03="":NoSchedule
it is a not share mount問題
部署時遇到share mount問題時,報錯提示如下:
FATA[0180] [workerPlane] Failed to bring up Worker Plane: Failed to start [kubelet] container on host [192.168.10.51]: Error response from daemon: linux mounts: Path /var/lib/kubelet is mounted on / but it is not a shared mount.
這個問題原因主要是kubelet容器化部署,需要手動設置docker的MuntFLAGS為空
https://github.com/kubernetes/kubernetes/issues/4869#issuecomment-195696990
解決方法:
執行
mount --make-shared /
或配置docker.server
MountFlags=shared
重啟docker.service
NetworkRedy=false問題
這個問題通常是,在部署時網絡組件在初始化,在配置,等待段時間就好了。或在對應節點查看kubelet日志的docker logs kubelet。
集群unavailable
通常此問題,是因為rancher-server根kubernetes中的kube-apiserver 6443端口連接有問題,建議檢查防火墻和查看kube-api-server的日志。
1、部署時能嚴格按照官方給出的操作系統版本和docker版本部署,可以避免掉很多問題。
2、多次部署,升級,環境一定要按照環境信息殘留章節的命令,將環境清理干凈。
3、如果遇到問題,建議docker logs 查看rancher-agent,rancher-server的日志。
以上就是Rancher 2.0部署過程中常見問題分析與解決方法,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。