首页主机资讯centos k8s迁移指南

centos k8s迁移指南

时间2025-11-18 11:05:04发布访客分类主机资讯浏览551
导读:CentOS 上 Kubernetes 迁移指南 一 迁移方式与适用场景 原地升级:在同一套节点上用 kubeadm 逐步升级 Kubernetes 版本,适用于希望保留现有节点与拓扑、降低一次性变更风险的场景。升级需按“控制面 → 工作...

CentOS 上 Kubernetes 迁移指南

一 迁移方式与适用场景

  • 原地升级:在同一套节点上用 kubeadm 逐步升级 Kubernetes 版本,适用于希望保留现有节点与拓扑、降低一次性变更风险的场景。升级需按“控制面 → 工作节点”的顺序,且一般不允许跨多个大版本直接升级,需要逐小版本递进。
  • 重建迁移:在新环境(物理机/虚拟机/云上)新建目标集群,通过 Velero 备份与恢复集群资源与持久卷快照,实现跨机房、跨云或跨版本的迁移,业务切换更可控。
  • 节点迁移:在集群内部将工作负载从旧节点平滑迁移到新节点,常用于硬件更换、扩容缩容或内核/系统升级,配合 cordon/drain/uncordon 完成蓝绿替换。

二 原地升级步骤 kubeadm

  • 准备与版本规划
    • 备份关键数据与清单:如 /etc/kubernetes、证书、关键 etcd 快照(如使用外部 etcd 则按实际备份策略执行)。
    • 规划版本路径:遵循“每次仅升级到下一个小版本”的原则,不能跨段升级(例如 1.19.x → 1.21.y 不合法,需先到 1.20.y 再到 1.21.y)。
  • 控制面节点升级
    • 将节点置为维护状态:kubectl drain --ignore-daemonsets
    • 升级 kubeadm 并验证升级计划:例如 yum install -y kubeadm-1.28.2-0;执行 kubeadm upgrade plan 查看可升级版本。
    • 执行升级:kubeadm upgrade apply v1.28.2
    • 升级 kubelet/kubectl 并重启:yum install -y kubelet-1.28.2-0 kubectl-1.28.2-0systemctl daemon-reload & & systemctl restart kubelet
    • 恢复调度:kubectl uncordon
  • 工作节点升级
    • 逐节点执行:先 cordon/drain,再升级 kubelet/kubectl 并重启,最后 uncordon
    • 验证:kubectl get nodeskubectl get pods -A 检查状态与可用性。
  • 注意事项
    • 升级顺序严格为“控制面 → 工作节点”,每次只升到下一个小版本,避免跨段升级。
    • 升级窗口内合理设置 Pod 中断预算(PDB),避免核心服务不可用。

三 重建迁移步骤 Velero

  • 前置准备
    • 在源集群安装 Velero(建议使用对象存储如 MinIO/S3 作为备份后端),准备访问凭证文件(如 credentials-velero)。
    • 在目标集群创建同版本的 Kubernetes 集群,确保网络插件、存储类等关键配置与源集群一致或兼容。
  • 备份与恢复
    • 备份:创建全量或指定命名空间的备份,例如 velero backup create my-backup;可按需包含持久卷快照。
    • 恢复:在目标集群安装 Velero 后执行 velero restore create --from-backup my-backup 恢复资源与卷数据。
    • 观察与回滚:关注恢复进度与事件,必要时基于备份快速回滚。
  • 适用场景与要点
    • 适合跨云/跨机房/跨版本的迁移,业务切换更平滑,可灰度与分批恢复。
    • 有状态应用需确保存储类与底层存储兼容;备份/恢复期间注意 IO 负载 与节点资源压力。

四 节点迁移步骤 集群内蓝绿替换

  • 逐节点替换
    • 将旧节点置为维护:kubectl cordon
    • 驱逐工作负载:kubectl drain --ignore-daemonsets --force
    • 下线旧节点:如需从集群移除,执行 kubectl delete node (可选)。
    • 在新节点上安装与源集群一致的 kubelet/kubeadm 配置,加入集群(如使用 kubeadm,执行 kubeadm join …)。
    • 打上角色标签(如需要):kubectl label node node-role.kubernetes.io/worker=worker
    • 恢复调度:kubectl uncordon ,检查 kubectl get nodeskubectl get pods -A
  • 适用场景与要点
    • 适合硬件更换、内核/系统升级、节点规格调整等场景,对业务影响可控。
    • 保持 Kubernetes/Docker/容器运行时 版本一致,避免版本漂移导致调度或兼容性问题。

五 迁移前后检查清单

  • 版本与兼容性
    • 确认源/目标集群 Kubernetes 版本路径合法,遵循逐小版本升级策略;组件版本与依赖一致。
  • 数据与存储
    • 有状态应用确保 PV/PVCStorageClass 在目标集群可用;使用 Velero 时验证卷快照是否成功恢复。
  • 网络与 DNS
    • Service/Ingress 配置一致,CoreDNS 工作正常;跨集群/跨云时确保网络策略与安全组放行。
  • 流量切换与回滚
    • 准备 DNS 切换Service 权重 方案,支持灰度与快速回滚;在切换前完成回归测试与监控告警验证。
  • 运维可观测性
    • 核对 日志/监控/告警 已接入并正常;备份 /etc/kubernetes 等关键配置与证书,便于紧急恢复。

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


若转载请注明出处: centos k8s迁移指南
本文地址: https://pptw.com/jishu/749922.html
centos k8s高可用架构 centos k8s API使用

游客 回复需填写必要信息