Skip to content
SRE运维进阶之路SRE运维进阶之路
github icon
  • kubernetes

    • Kubernetes 学习笔记
      • 集群搭建

        • 使用 ansible 快速搭建 k8s 集群
        • 常见应用安装配置

          • Harbor 安装配置(k8s)
            • Harbor 高可用搭建(docker-compose)
              • Rancher 安装配置
                • Helm 安装配置
                • 容器运行时

                  • k8s 适配 GPU
                    • Kata2 尝试
                    • 存储

                      • Longorn 安装配置
                        • 使用 Rook 快速搭建 Ceph 集群
                        • 服务发现与路由

                          • ingress-nginx 安装配置
                          • 集群网络

                            • CNI
                              • Calico
                              • 监控告警

                                • Prometheus Operator 安装配置
                                • 实用技巧

                                  • 运维手册

                                    • etcd 备份恢复
                                      • velero 备份恢复
                                        • k8s 开启审计日志
                                          • 内核版本升级
                                            • 使用 kubeadm 手动更新证书
                                              • 为 k8s node 配置资源预留
                                                • 利用LXCFS提升容器资源可见性
                                                • 最佳实践

                                                  • k8s node 配置资源预留
                                                    • 性能压测指标及方法
                                                      • CPU 绑核
                                                      • 集群排障

                                                        • 如何更新Terminating状态的命名空间
                                                          • 卸载 rancher 导致 node 被清空
                                                            • 问题描述
                                                              • 快速恢复
                                                                • 根因分析(5 why)
                                                                  • 教训
                                                                  • lvs 健康检查 k8s apiserver
                                                                    • k8s 更改apiserver使用强加密算法
                                                                    • 教程|项目|博客|文章推荐
                                                                      • 附录

                                                                        • 快捷命令

                                                                      卸载 rancher 导致 node 被清空

                                                                      author iconClaycalendar icon2022年4月28日category icon
                                                                      • 云原生
                                                                      tag icon
                                                                      • Kubernetes
                                                                      timer icon大约 1 分钟

                                                                      此页内容
                                                                      • 问题描述
                                                                      • 快速恢复
                                                                      • 根因分析(5 why)
                                                                      • 教训

                                                                      # 卸载 rancher 导致 node 被清空

                                                                      # 问题描述

                                                                      集群的节点突然全都不见了 (kubectl get node 为空),导致集群瘫痪,但实际上节点对应的宿主机都还在。因为集群没开审计,所以也不太好查 node 是被什么删除的。

                                                                      # 快速恢复

                                                                      由于当时没有排查出来问题,当时批量重启了服务器,自动拉起 kubelet 重新注册 node,故障恢复。其实只是 k8s node 资源被删除,重启 kubelet 服务,自动注册即可。

                                                                      # 根因分析(5 why)

                                                                      从 kube-apiserver 日志中可以看到,DELETE node 的操作,导致 node 被清空

                                                                      哪里调用的 删除接口?

                                                                      node 被清空前,查看 history,发现有卸载 rancher 的操作,很可疑,调查发现,rancher 自定义crd nodes.management.cattle.io,有操控 node 的嫌疑,而这个crd 只在 local namespace 发现资源,所以判断是卸载 rancher 的脚步中,有直接删除 local的操作

                                                                      # 教训

                                                                      操作类似的 k8s web 管理平台,尤其删删除卸载时,务必小心,没有把握不要操作,网上的脚步慎用,最好用官方提供的卸载方式,恰巧当时 rancher 官方的卸载方式好久没有维护了,说多了都是泪。。。

                                                                      参考链接:

                                                                      • 误删 rancher 的 namespace 导致 node 被清空open in new window
                                                                      edit icon编辑此页open in new window
                                                                      上次编辑于: 2022/10/22 05:03:44
                                                                      贡献者: clay-wangzhi
                                                                      上一页
                                                                      如何更新Terminating状态的命名空间
                                                                      下一页
                                                                      lvs 健康检查 k8s apiserver
                                                                      备案号:冀ICP备2021007336号
                                                                      Copyright © 2023 Clay