K8s集群重启与恢复-Node节点启停方式例子解析

在这里插入图片描述

代码示例:

当您遇到 Docker 网络错误,提示 “network bridge not found” 时,可以尝试以下几种解决方法:

  1. 重启 Docker 服务:这是最简单的尝试方法,有时候可以解决临时的网络问题。

    systemctl restart docker
    

    如果重启服务没有解决问题,可以尝试以下步骤。

  2. 检查并创建默认网桥:Docker 依赖于一个名为 docker0 的默认网桥来进行容器间的网络通信。如果缺失,可以手动创建:

    # 创建网桥
    brctl addbr docker0
    # 启动网桥
    ip link set dev docker0 up
    # 配置网桥的 IP 地址和子网掩码
    ip addr add 172.17.0.1/16 dev docker0
    

    创建网桥后,再次尝试启动 Docker 服务。

  3. 检查 Docker 网络配置:确保 Docker 的网络配置没有被错误地修改。您可以查看当前的网络配置:

    docker network ls
    

    如果没有列出任何网络,可能需要创建一个新的网络。

  4. 删除并重新创建网络:如果网络配置出现问题,可以尝试删除现有的网络并重新创建:

    docker network prune
    

    然后重新创建网络并启动容器。

  5. 检查防火墙和安全组规则:确保没有防火墙或安全组规则阻止 Docker 网络的正常工作。

  6. 检查 Docker 的 daemon.json 配置文件:如果进行了自定义配置,确保没有错误。配置文件通常位于 /etc/docker/daemon.json

  7. 重新安装 Docker:如果上述步骤都无法解决问题,可能需要重新安装 Docker。

  8. 使用 host 网络模式:作为临时解决方案,可以使用 host 网络模式来启动容器,这样可以避免网络问题,但请注意这会使得容器和宿主机共享网络栈:

    docker run -itd --net=host xxx
    

    这种方式不推荐在生产环境中使用,因为它会失去容器隔离性的优势 。

请根据您的具体情况尝试上述方法,并在每一步之后检查 Docker 网络的状态,以确定问题是否已解决。

喜欢本文,请点赞、收藏和关注!
在这里插入图片描述

代码示例:

在Kubernetes(K8s)集群中,对Node节点进行重启与恢复是常见的运维操作。以下是一些详细的步骤和例子:

Node节点启停方式

Master节点启停
  • 启动: systemctl start etcd kube-apiserver kube-controller-manager kube-scheduler flanneld
  • 重启: systemctl restart etcd kube-apiserver kube-controller-manager kube-scheduler flanneld
  • 停止: systemctl stop etcd kube-apiserver kube-controller-manager kube-scheduler flanneld
Node节点启停
  • 启动: systemctl start flanneld kube-proxy kubelet docker
  • 重启: systemctl restart flanneld kube-proxy kubelet docker
  • 停止: systemctl stop flanneld kube-proxy kubelet docker

Node节点灾备及恢复

Node节点发生崩溃

当Node节点因关机、停电等原因不可用时,主节点会检测到Node节点的不可用状态,并将工作负载重新调度到其他节点。如果需要恢复到原有的节点数量,可以创建一个新节点并将其添加到集群中。使用kubeadm token create --print-join-command在主机上创建令牌,然后在新节点上使用该令牌加入集群。

Master节点发生崩溃

Master节点的灾备恢复比较复杂,可能需要同时进行etcd数据的恢复。恢复步骤包括证书的备份恢复、etcd数据存储恢复和主节点控制组件恢复。在恢复时,需要确保待恢复的机器上,机器名称和IP地址与崩溃前的主节点配置一致。

Node节点平滑维护

对于需要进行维护的Node节点,可以按照以下步骤进行平滑维护:

  1. 使用kubectl cordon <node-name>命令将节点标记为不可调度状态。
  2. 使用kubectl drain <node-name> --delete-local-data --ignore-daemonsets --force命令将节点上的Pod迁移到其他节点。
  3. 进行节点的维护操作,如内核升级或硬件更换。
  4. 使用kubectl uncordon <node-name>命令恢复节点的调度状态。

重启Pod的方法

在Kubernetes中,重启Pod可以通过以下三种方法:

  1. 使用kubectl delete pod <pod-name>命令删除Pod,Kubernetes会自动重新创建该Pod。
  2. 使用kubectl rollout restart deployment <deployment-name>命令执行滚动重启。
  3. 通过修改Pod的Annotations触发重启,例如添加kubernetes.io/restartAt: "<timestamp>"

注意事项

  • 在执行drain操作时,确保Pod副本数大于1,并配置了反亲和策略,以避免服务中断。
  • 如果使用delete命令删除节点,需要手动重新启动kubelet服务,并处理证书签发。
  • 在进行节点维护时,确保集群资源充足,以避免因资源不足导致的问题。

这些步骤和例子提供了K8s集群中Node节点启停和恢复的基本指导。在实际操作中,可能需要根据具体的集群配置和业务需求进行适当的调整。

喜欢本文,请点赞、收藏和关注!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

乔丹搞IT

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值