一般常见问题
重要提示
RKE add-on 安装仅支持 Rancher v2.0.8 之前的版本。 请使用 Rancher helm chart 将 Rancher 安装在 Kubernetes 集群上。有关详细信息,请参见Helm 版本要求。 如果您当前正在使用 RKE add-on 安装方法,参见将 RKE add-on 安装的 Rancher 迁移到 Helm 安装,获取有关如何使用 Helm chart 的详细信息。
您可以按下列步骤定位您集群中的问题。
#
防火墙端口是否打开仔细检查所需端口是否已在主机防火墙或 VPC 安全组中打开。
#
节点是否处于 Ready 状态请运行以下命令检测:
如果有节点未显示或处于非 Ready 状态,可以检查 kubelet
容器的日志。登录该节点执行 docker logs kubelet
。
#
Pods/Jobs 是否处于理想状态请运行以下命令检测:
如果有 Pod 处于非 Running 状态,可以通过运行以下命令来找出根本原因:
#
描述 Pod#
显示 Pod 容器日志如果有 Job 处于非 Completed 状态,可以通过运行以下命令来找出根本原因:
#
描述 Job#
显示 Job 的容器日志#
检查 IngressIngress 应该具有正确的 HOSTS
(显示已配置的 FQDN)和 ADDRESS
(将被路由到的地址)。
#
显示 Kubernetes 集群的所有事件Kubernetes 集群事件会被存储,可以通过运行以下命令进行检索:
#
检查 Rancher 容器日志#
检查 NGINX ingress controller 日志#
检查 Overlay 网络是否正常运行Pod 可以被调度到集群中的任何主机,这就意味着 NGINX ingress controller 能将请求从 NODE_1
路由到 NODE_2
,即,请求是在 Overlay 网络之上流转的。也就是说,如果 Overlay 网络不正常,NGINX ingress controller 就无法把请求路由到 Pod,那么您将遇到间歇性的 TCP/HTTP connection failed 的错误。
您如果要测试集群 Overlay 网络的连通性,可以运行下面的 DaemonSet
,在每个主机上跑起一个 alpine
容器,然后在这些容器之间执行 ping
测试。
将以下文件另存为
ds-alpine.yml
:执行
kubectl --kubeconfig kube_config_rancher-cluster.yml create -f ds-alpine.yml
。执行
kubectl --kubeconfig kube_config_rancher-cluster.yml rollout status ds/alpine -w
直到返回:daemon set "alpine" successfully rolled out
。运行以下命令,使每个主机上的每个容器相互 ping 通(这是一条单行命令)。
该命令运行完毕后,代表一切正确的输出如下:
如果在输出中看到错误,则表示在测试的主机之间未打开 Overlay 网络的所需端口。
下面是当 NODE1 的 UDP 端口被禁用时的错误示例: