问题实例
待解决问题
RKE 问题
- Centos 启动 RKE 集群还存在用户权限问题,无法使用 root 安装。详见:https://rancher2.docs.rancher.cn/docs/rke/os/_index#rhel%E3%80%81oel%E3%80%81centos
- kube-proxy、kube-scheduler、kube-controller-manager、kube-apiserver、etcd 这些集群组件,无守护,不是通过 kubelet 的静态 pod 拉起。如果容器被停掉,则无法自动恢复。
- ube-scheduler、kube-controller-manager 的 https 端口无法使用,证书有问题。
K3S 问题
- k3s 中的 kubelet 无法使用 systemd 后端,k3s 官方人员吐槽 k8s 官方使用 systemd 后端。详见:https://github.com/rancher/k3s/issues/797
Rancher 问题
- rancher 崩溃或数据丢失,会导致的问题
- 通过 rancher 创建的集群无法添加节点,无法升级,所有关于 kubeadm 可以使用的东西都无法使用。就算通过 kubelet 手动添加也不行。
- rancher 部署在原生 k8s 集群上入侵行太强,会创建几十个 CRD。当删除的时候,还无法正常删除,只能删除其垃圾回收机制中的 finalizers 字段才可以。
- rancher 会为集群中每个 namespace 添加注释以及 finalizers,包括 kube-system,issuer 详见 #14715。如果想要自己删除 ns,则会被卡住,因为 ns 在等待
controller.cattle.io/namespace-auth
- 导入集群清理 rancher 不干净,留下非常非常多的 rolebing、clusterrole、clusterbinding,很多都是操作 ns 所需的。
Agent 无法连接 Rancher server
ERROR: https://x.x.x.x/ping is not accessible (Failed to connect to x.x.x.x port 443: Connection timed out)
- ERROR: https://x.x.x.x/ping is not accessible (Failed to connect to x.x.x.x port 443: Connection timed out)
在 cattle-cluster-agent 或 cattle-node-agent 中出现以上错误,代表 agent 无法连接到 rancher server,请按照以下步骤排查网络连接:
从 agent 宿主机访问 rancher server 的 443 端口,例如:telnet x.x.x.x 443
从容器内访问 rancher server 的 443 端口,例如:telnet x.x.x.x 443
ERROR: https://rancher.my.org/ping is not accessible (Could not resolve host: rancher.my.org)
- ERROR: https://rancher.my.org/ping is not accessible (Could not resolve host: rancher.my.org)
在 cattle-cluster-agent 或 cattle-node-agent 中出现以上错误,代表 agent 无法通过域名解析到 rancher server,请按照以下步骤进行排查网络连接:
- 从容器内访问通过域名访问 rancher server,例如:ping rancher.my.org
这个问题在内网并且无 DNS 服务器的环境下非常常见,即使在/etc/hosts 文件中配置了映射关系也无法解决,这是因为 cattle-node-agent 从宿主机的/etc/resolv.conf 中继承 nameserver 用作 dns 服务器。
所以要解决这个问题,有两个办法:
可以在环境中搭建一个 dns 服务器,配置正确的域名和 IP 的对应关系,然后将每个节点的 nameserver 指向这个 dns 服务器。
使用 HostAliases,向 pod 内添加 hosts 条目:
kubectl -n cattle-system patch deployments cattle-cluster-agent --patch '{
"spec": {
"template": {
"spec": {
"hostAliases": [
{
"hostnames":
[
"{{ rancher_server_hostname }}"
],
"ip": "{{ rancher_server_ip }}"
}
]
}
}
}
}'
kubectl -n cattle-system patch daemonsets cattle-node-agent --patch '{
"spec": {
"template": {
"spec": {
"hostAliases": [
{
"hostnames":
[
"{{ rancher_server_hostname }}"
],
"ip": "{{ rancher_server_ip }}"
}
]
}
}
}
}'
github.com/rancher/norman/controller/generic_controller.go:237: Failed to list *v1.LimitRange: Get https://10.96.0.1:443/api/v1/limitranges?resourceVersion=4897&timeout=30s: context deadline exceeded
https://github.com/rancher/rancher/issues/27736
反馈
此页是否对你有帮助?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.