K8S 升级问题

在K8S升级过程中遇到多个问题,包括POD移除、节点排水、升级时长过长、废弃API、SVC与SLB配置不一致等。解决方案涉及增加节点资源、调整干扰预算、更新证书、同步时间、升级组件和容器运行时等。此外,针对不同异常,如CCM组件、ingress控制器和local DNS版本,提供了相应的升级和修复建议。
摘要由CSDN通过智能技术生成

POD 不能移除&不能排水
集群ID:ce196c6229074492f91b76f6cc7d3b636
节点ID:i-gw87awmorxspkicxd4he
这个节点卡在不可调度状态,上边的pod不能被移除掉
节点不能正常排水,节点上有这么个报错

解决方案
webhook设置了干扰预算
目前是 一个副本 ,最小可用 80%
建议两种方式:
1、删除干扰预算(做好备份)
2、修改干扰预算
①调整minAvailable为0
②扩容副本,调小minAvailable
a.minAvailable设置成1 ,可以保证 1个副本可用,可以设置成1
b.或者minAvailable 50% 然后将webhook的副本调成2个

升级时长过长(超20 分钟)
节点升级时间过长,20分钟还未升级完成

解决方案
升级到containerd 会涉及到 替换系统盘,排水,会比较慢,现在正常运行,即使有之前的pdb 干扰,我们也有干扰预算机制,依然会升级。
Container Runtime Version: containerd://1.5.10
[2023-07-04 15:08:52—15:37:59] 【节点池升级】 状态:running,

已弃用的 K8S API
集群 ID: c4fbc8b8a0ae24e20b0faf20be7fa3e6c
问题现象

解决方案
对于弃用的 api资源,已经存在的不需要改动,如果有用 helm 或者 cicd 的话,需要把手头上的 yaml 改下 apiversion 升级 的话 ack会把running的deployment等资源的apiversion升级成新的,主要改本地的以及cicd之类的存放yaml的apiversion即可
集群ID:c50e73ed43df446958357b058d5ef4824

问题现象
废弃API问题

解决方案
Ingress和IngressC lass资源不再支持networking.k8s.io/v1beta1和extensions/v1beta1 API。
忽略不影响升级。 存量默认会自动把这两个api 升级到networking.k8s.io/v1替代,手头有还没创建的 资源,apiversion 需要换成 v1
具体参考:
https://help.aliyun.com/document_detail/390170.html?spm=a2c4g.212872.0.0
升级时出现废弃API,说明如下:
Kubernetes 1.20及之后版本的集群升级前检查时,支持检查废弃API信息。在检查结果的实例列表中可以看到集群使用的废弃API。
如果集群在1.22版本中继续使用废弃API,可能会有安全隐患。如果有业务正在使用这些废弃API,需要进行处理
废弃API说明
https://help.aliyun.com/document_detail/606069.htm?spm=a2c4g.86497.0.0.3aa63ec84FfOvc#section-bff-eip-5xe
资源变更及废弃说明
https://help.aliyun.com/document_detail/390170.html?spm=a2c4g.155809.0.0.328a7003r6FzQB

注意事项
1)、CCM组件升级失败大多由yaml和SLB两侧配置差异引起,其他CCM组件升级问题参考:https://help.aliyun.com/document_detail/164988.html?spm=a2c4g.215497.0.i7
2)、如需对集群CLB进行规格、配置等进行调整,建议通过ACK集群进行管理
3)、节点运行时替盘升级前,请不要在系统盘中保存重要数据或者提前做好备份

SVC与SLB的监听配置不一致
集群ID:cd7a6e3f10bef4367abf852a5f4e9f977

SVC与SLB的监听配置不一致

解决方案
需要到对应 slb 控制台443 https 监听,把证书 1098831533399102_1876e458dee_-845411940_-1678535794 换成 1098831533399102_17ffe514f27_1938710420_150127723
后期一切关于k8s service slb 监听,参数等都需要统一在service 去更改,不能在slb 控制台去操作。
如果是slb 控制台如果改了原证书 1098831533399102_17ffe514f27_1938710420_150127723 改成了 1098831533399102_1876e458dee_-845411940_-1678535794
这个操作不允许,需要统一service 去更改
目标SVC 查看命令:
kubect get svc -n 命名空间 svc-name -o yaml

修改POD 挂载路径
ack升级需要修改挂载路径,排水时可能会丢失数据

解决方案
kubectl get pods

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Romeo-Wu

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

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

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

打赏作者

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

抵扣说明:

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

余额充值