记一次k8s事故

axing
2025-05-27 / 1 评论 / 2 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2025年05月26日,已超过10天没有更新,若内容或图片失效,请留言反馈。

发生的原因:

  1. 当时创建了 Jenkins的yaml文件,镜像是用k8s里面harbor的镜像(没起来)。
  2. 另外一个创建用命令直接拉取着这个镜像从几MB一秒的拉取速度变成后面的几百KB
  3. 第一个问题 当时没拉起来是因为需要修改配置文件 因为harbor是用http的,应该是和当时文件里面的另外一个配置冲突了。
  4. 然后我手动删除这个没起来的pod。发现一直卡主。然后重新修改了yaml文件改pod名字。重启apply。
  5. 导致k8s一直卡主,etcd卡主。kube-apiserver.yaml 文件发现不见了!!!
  6. 一直尝试修复都未成功,只能重装k8s。
  7. 重装后,有一个配置没添加kubectl get node k8s01 -o jsonpath='{.spec.podCIDR}'# 预期输出:10.244.0.0/24
  8. 导致网络插件Flannel,一直没起来导致系统的coredn也没能起来。
  9. 在vim /etc/kubernetes/manifests/kube-controller-manager.yaml中添加

    spec:
      containers:
      - command:
     - kube-controller-manager
     - --allocate-node-cidrs=true        # 确保启用
     - --cluster-cidr=10.244.0.0/16     # 与 Flannel 的 Network 配置一致
     - --node-cidr-mask-size=24         # 可选,默认24
     # 其他原有参数...
    # 1. 临时移除清单文件 重启 kube-controller-manager​
    mv /etc/kubernetes/manifests/kube-controller-manager.yaml /tmp/
    sleep 10  # 等待 Pod 终止
    
    # 2. 恢复清单文件
    mv /tmp/kube-controller-manager.yaml /etc/kubernetes/manifests/

总结:

  1. /etc/kubernetes/manifests/ 这个目录下的文件 记得备份!!!!!
  2. 别轻易重新系统
  3. 对k8s的配置操作要谨慎
  4. 这次折腾了一晚上,k8s里面的ceph和Jenkins和harbor估计都没了。。。
  5. 对于ceph放k8s里面容器化部署还是需要谨慎,就比如说这次如果是裸机部署的ceph,重装了k8s,数据应该不会丢失的。
0

评论 (1)

取消
  1. 头像
    axing 作者
    Windows 10 · Google Chrome

    describe

    回复