文档章节

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

RancherLabs
 RancherLabs
发布于 2018/05/23 10:47
字数 1581
阅读 1543
收藏 5

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

本文是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

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

输入图片说明

常见问题与排查思路

环境信息残留

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

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

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

需要您进行以下操作:

  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="":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的日志。

© 著作权归作者所有

RancherLabs
粉丝 102
博文 269
码字总数 582536
作品 0
深圳
程序员
私信 提问
Rancher 2.0 正式发布:加速企业 Kubernetes 落地

Rancher Labs 团队宣布 Rancher 2.0 已正式发布! Rancher 2.0 是一个 100% 开源的 Kubernetes 管理平台,为企业用户提供 Kubernetes-as-a-Service (Kubernetes即服务),并且 Rancher 2.0 能...

王练
2018/05/03
3.1K
13
Rancher 2.0技术预览版2发布:升级的K8S魔法

Rancher 2.0技术预览版II现已正式发布!Rancher 2.0是Rancher Labs下一阶段的旗舰产品,一个能在同一平台上管理任何Kubernetes集群的企业级开源容器管理平台。 Rancher 2.0简洁直观的界面风格...

RancherLabs
2018/01/31
138
0
Kubernetes上的负载均衡详解

如果您的应用程序是面向大量用户、会吸引大量流量,那么一个不变的目标一定是在高效满足用户需求的同时、不让用户感知到任何类似于“服务器繁忙!”的情况。这一诉求的典型解决方案是横向扩展...

RancherLabs
2018/09/20
702
1
如何在Rancher 2.0上快速部署Datadog

Datadog是一种流行的托管监控解决方案,用于聚合和分析分布式系统的指标和事件。从基础架构集成到协作仪表板,Datadog为用户提供了一个简洁的单一窗格视图,用户可以快速查看对其最重要的信息...

RancherLabs
2018/07/20
164
0
如何从Rancher 1.6迁移到Rancher 2.0?这份清单可以帮助你!

Rancher 2.0全面拥抱Kubernetes,而目前Rancher 1.6和2.0之间尚未有直接的升级路径。本文将提供一份简短的清单,包括安装、配置身份验证、添加集群和项目、创建命名空间、以及迁移应用,帮助...

RancherLabs
2018/08/14
100
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周一乱弹 —— 我的视频网站vip账号和我厚脸皮的朋友们

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @Cobbage :分享小海的单曲《衡山路(2016现场版)》: 《衡山路(2016现场版)》- 小海 手机党少年们想听歌,请使劲儿戳(这里) @FalconChe...

小小编辑
今天
6
0
Spring Cloud Alibaba 实战(十二) - Nacos配置管理

> 本章主要内容是:使用Nacos管理配置以及实现配置管理的原因,配置如何管理以及动态刷新和最佳实现总结,最后是Nacos配置刷新原理解读 该技术类似于Spring Cloud Config 1 配置管理的意义 项目...

JavaEdge
今天
9
0
面试官问你编码相关的面试题,把这篇甩给他就完事!

前情回顾:Java中一个字符占两字节 但为什么new String("字").getBytes().length 返回3个字节 今天主要聊一聊: 字节 字符 字符集 编码 字符编码 Java 内码和外码 Unicode 字节 例如 :00001...

gzc426
今天
10
0
写的简单sh脚本2

#!/bin/bashexport LANG="en_US.UTF-8"#chmod +x filename 记得给文件加可执行权限#./vsimstart.sh#启动vsim项目echo "start vism"#207------------------------------assets=vsim-a......

hexiaoming123
昨天
8
0
java基础(1)变量和常量

概要和总结: 数据类型图: 基本数据类型:只有基本功能-----保存数据 (4类8种)byte-short-int-long-float-double-char-boolean 引用数据类型:有更多功能,保存数据,处理数据...

煌sir
昨天
10
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部