首页主机资讯如何在Debian上更新K8s

如何在Debian上更新K8s

时间2025-11-27 19:29:03发布访客分类主机资讯浏览440
导读:在 Debian 上使用 kubeadm 升级 Kubernetes 的实操指南 一 升级前准备 备份关键数据与配置:建议备份 /etc/kubernetes/ 与 /var/lib/etcd/;如使用 etcd,可用 etcdctl 快...

在 Debian 上使用 kubeadm 升级 Kubernetes 的实操指南

一 升级前准备

  • 备份关键数据与配置:建议备份 /etc/kubernetes//var/lib/etcd/;如使用 etcd,可用 etcdctl 快照,例如:
    etcdctl snapshot save /data/etcd/etcd_bak.db
    –endpoints=https://127.0.0.1:2379
    –cacert=/etc/kubernetes/pki/etcd/ca.crt
    –cert=/etc/kubernetes/pki/etcd/server.crt
    –key=/etc/kubernetes/pki/etcd/server.key。
  • 检查集群健康:确保节点 Readyetcd 可用、核心工作负载稳定,尽量在业务低峰期执行。
  • 版本路径与兼容性:kubeadm 升级通常要求逐个大版本进行(如 1.28 → 1.29),不支持跨多个大版本;升级前阅读目标版本的变更说明与弃用清单。
  • 系统与环境:保持 Debian 与安全补丁为最新;禁用 Swap;确保容器运行时(如 containerd/Docker)版本与新版本 K8s 兼容;准备好 kubectl 以便验证。
  • 高可用提示:若为 HA 控制面,确保 APIServer 前端(如 HAProxy/Keepalived)健康检查与摘除策略正常。

二 升级路线与版本选择

  • 升级顺序:先升级 控制平面节点(一次一台),再升级 工作节点;每台节点升级前先 排空(drain),升级 kubelet解除封锁(uncordon)
  • 选择目标版本:先确定要停留的小版本线(如 1.28),再在该线内升级到最新补丁。Debian 上可用:
    apt update & & apt-cache madison kubeadm
    查看可用版本,例如 1.28.x-*(x 为最新补丁)
  • 升级节奏:同一时间只升级一个控制面节点;所有控制面节点完成后再逐台升级工作节点,避免一次性大面积中断。

三 控制平面节点升级步骤

  • 升级 kubeadm(每台控制面节点)
    apt-mark unhold kubeadm
    apt-get update & & apt-get install -y kubeadm=‘1.28.x-*’
    apt-mark hold kubeadm
    kubeadm version

  • 检查升级计划并应用
    kubeadm upgrade plan
    kubeadm upgrade apply v1.28.x
    注:该过程会更新 kube-apiserver、kube-controller-manager、kube-scheduler 等控制面组件及 kube-proxy 配置。

  • 排空节点并升级 kubelet/kubectl
    kubectl drain < 控制面节点名> --ignore-daemonsets
    apt-mark unhold kubelet kubectl
    apt-get update & & apt-get install -y kubelet=‘1.28.x-’ kubectl='1.28.x-
    apt-mark hold kubelet kubectl
    systemctl daemon-reload & & systemctl restart kubelet

  • 解除封锁
    kubectl uncordon < 控制面节点名>
    提示:若为 HA,升级期间可通过负载均衡摘除该节点,恢复后再加回。

四 工作节点升级步骤

  • 升级 kubeadm
    apt-mark unhold kubeadm
    apt-get update & & apt-get install -y kubeadm=‘1.28.x-*’
    apt-mark hold kubeadm

  • 排空节点
    kubectl drain < 工作节点名> --ignore-daemonsets

  • 升级 kubelet/kubectl 并重启
    apt-mark unhold kubelet kubectl
    apt-get update & & apt-get install -y kubelet=‘1.28.x-’ kubectl='1.28.x-
    apt-mark hold kubelet kubectl
    systemctl daemon-reload & & systemctl restart kubelet

  • 解除封锁
    kubectl uncordon < 工作节点名>
    重复以上步骤逐台升级工作节点。

五 升级后验证与常见问题

  • 版本与节点状态
    kubectl version --client
    kubectl get nodes
    kubectl get pods -A
    确认控制面与工作节点均处于 Ready,核心系统组件(如 CoreDNS、kube-proxy)运行正常。

  • 组件与清单适配
    升级后按需升级 CNI/CSI/Ingress/Dashboard/监控 等附加组件,确保与新版本 Kubernetes API 兼容。
    如存在 API 版本变更,使用 kubectl convert 将现有清单迁移至新版本,例如:
    kubectl convert -f pod.yaml --output-version v1
    再应用更新后的清单。

  • 常见问题与处理

    • 单节点集群无法排空:升级期间业务会短暂中断,建议在具备多节点的生产环境执行滚动升级。
    • 升级后容器重启:kubelet 升级会触发容器重建,属正常现象。
    • 升级失败回滚:若 kubeadm upgrade apply 失败,可回退到上一补丁版本(如 1.28.(x-1)),修复问题后再重试;必要时基于备份恢复 etcd

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: 如何在Debian上更新K8s
本文地址: https://pptw.com/jishu/758191.html
K8s在Debian上的常见问题及解决 Debian上K8s节点如何添加

游客 回复需填写必要信息