10 月 23 - 25 日,QCon 上海站即将召开,现在购票,享9折优惠 了解详情
写点什么

Rancher 2.0 部署过程中常见问题分析与解决

  • 2020-04-15
  • 本文字数:2473 字

    阅读完需:约 8 分钟

Rancher 2.0部署过程中常见问题分析与解决

本文是 Rancher 2.0 部署与使用过程中常见的问题及其解决方法,多数问题整理收集自 Rancher 官方技术交流群内用户的提问与反馈。欢迎扫描文末二维码,添加 Rancher 小助手为好友,加群获得更多技术支持。

本文主要内容为 :

1、部署 Rancher 2.0 的环境需求


  • 推荐使用的操作系统

  • 推荐的硬件配置

  • 支持的 docker 版本

  • 防火墙需要允许通过的端口


2、部署过程中的常见问题及排查思路


  • 环境信息残留

  • openssh 版本过低问题

  • nodeport 端口只有一台机器能访问

  • 部署使用 calico 网络部署环境失败问题

  • 部署时主机 not found 问题

  • web 页面 kubectl 闪退问题

  • 非 worker 节点仍然被调度 pod 问题

  • it is a not share mount 问题

  • networkredy=false 问题

  • 集群 unavailable

环境需求

推荐使用的操作系统

  • 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

防火墙请允许通过已下端口

ProtocolPort rangePurpose
tcp22ssh server
tcp80Rancher Server/ingress
tcp443Rancher Server/ingress
tcp6443kubernetes api server
tcp2379-2380etcd server client api
tcp10250-10256kubernetes components
tcp30000-32767nodeport services
udp8472canal

常见问题与排查思路

环境信息残留

目前部署中,大部分问题都是因为由于部署环境的操作系统,或多次部署,升级后残留的的信息造成的。


部署前或部署时,请使用以下命令将环境的各类信息清理干净:


df -h|grep kubelet |awk -F % '{print $2}'|xargs umount rm /var/lib/kubelet/* -rfrm /etc/kubernetes/* -rfrm /var/lib/rancher/* -rfrm /var/lib/etcd/* -rfrm /var/lib/cni/* -rfiptables -F && iptables -t nat –Fip link del flannel.1docker ps -a|awk '{print $1}'|xargs docker rm -fdocker 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


需要您进行以下操作:


  1. 确保您的 openssh 版本大于等于 7.x

  2. 修改 sshd 配置打开重启 sshd

  3. 默认 centos 和 rhel 不能使用 root 用户进行 ssh tunnel,所以需要使用一个普通用户

  4. 并将这个用户加入 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="":NoSchedulekubectl taint node rancher-kf-control02 node-role.kubernetes.io/rancher-kf-control02="":NoSchedulekubectl 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 的日志。


2020-04-15 23:042064

评论

发布
暂无评论
发现更多内容

2022年2月国产数据库排行榜: OceanBase“三连增”重夺探花,GaussDB实现本月最大涨幅引期待

墨天轮

数据库 opengauss TiDB oceanbase 国产数据库

数字经济下,银行线上场景化建设的服务颗粒度、用户忠诚度和生态融合度

CECBC

Linux之watch命令

入门小站

Linux

[Python公开课]零基础玩转Python基础篇----第二节:Python的语法基础

是Dream呀

2月月更

转载:公司到底怕不怕劳动仲裁?

小江

法律 仲裁

大数据培训:在 flink 中使用 hive udf的原因分析

@零度

flink 大数据开发

java培训:MyBatis 相关面试题分享

@零度

mybatis JAVA开发

[Python公开课]零基础玩转Python进阶篇----第一节:Python中的文件操作

是Dream呀

2月月更

SaaS服务的私有化部署,这样做最高效|云效工程师指北

阿里云云效

阿里云 DevOps 云原生 私有化部署 SaaS平台

[Python公开课]零基础玩转Python基础篇----第六节:Python中的函数

是Dream呀

2月月更

web前端培训: JavaScript 中初始值如何填充数组

@零度

JavaScript 前端开发

使用污点分析检查log4j问题

华为云开发者联盟

Java log4j JNDI 污点分析 信息流分析

加密世界的自由

CECBC

龙蜥社区一周动态 | 2.07-2.13

OpenAnolis小助手

Linux 开源 社群运营

拥有CI/CD的所有益处,却更绿色

龙智—DevSecOps解决方案

静态代码分析 静态代码分析工具 SAST工具 静态分析安全测试工具

智汇华云 | 通过iscsi为容器提供存储

华云数据

智汇华云|ArStack 热迁移背后的黑魔法

华云数据

打造爆款游戏互动体验,拍乐云Unity实时语音了解一下

拍乐云Pano

游戏开发 Unity RTC 实时语音

[Python公开课]零基础玩转Python基础篇----第三节:Python的常用语句

是Dream呀

Python 2月月更

[Python公开课]零基础玩转Python基础篇----第七节:Python中的高级函数

是Dream呀

2月月更

敏捷环境中的DevSecOps

龙智—DevSecOps解决方案

敏捷 DevSecOps 敏捷环境 DevSecOps和敏捷

最佳实践 | 如何避免一行错误代码造成的血案?

龙智—DevSecOps解决方案

代码质量 静态代码分析 电信公司解决方案 代码检查器

[Python公开课]零基础玩转Python基础篇----第四节:Python的字符串

是Dream呀

Python 2月月更

从冬奥火炬“飞扬”看我国氢能产业的发展前景

易观分析

Hoo虎符研究院|Moonbeam主网上线后 “Layer 0”会有哪些改变?

区块链前沿News

Hoo 虎符交易所 虎符研究院 波卡 Moonbeam

【C语言】数据类型

謓泽

c 数据类型 2月月更

AI冬奥 | 未来已来?走进元宇宙入口-虚拟数字人

Baihai IDP

人工智能 机器学习 AI 游戏 元宇宙

如何优雅的处理错误逻辑

蜜糖的代码注释

Java 2月月更 写好代码

[Python公开课]零基础玩转Python基础篇----第五节:Python的列表、元组和字典

是Dream呀

Python 2月月更

新版本插件解读|如何借助 Forward Auth 增强认证能力

API7.ai 技术团队

开源 网关 认证 Apache APISIX

Linux下玩转nginx系列(二)——nginx配置文件说明

anyRTC开发者

nginx Linux 音视频 WebRTC 服务器

Rancher 2.0部署过程中常见问题分析与解决_文化 & 方法_Rancher_InfoQ精选文章