容器服务
分类 | 检查项 | 异常原因 | 影响说明 | 修复建议 |
集群资源配额 | vpc 子网状态检查 | 未查询到私有网络(VPC)子网信息,请确认集群网络是否已经被删除。 | 子网信息异常会导致集群不可用。 | |
| vpc-cni 子网剩余 IP 数量检查 | VPC-CNI 网络模型集群的子网剩余 IP 数量不足。 | 子网剩余子网 IP 不足,会导致升级任务失败。 | |
节点健康状态 | 集群节点状态检查 | 集群中存在异常状态的节点。 | 集群存在异常节点时,为防止 Kubernetes 集群出现异常,不允许执行集群升级。 | 请先修复异常节点,将节点恢复为 Ready 状态。请根据控制台提示信息,排查节点异常原因并修复。 |
废弃 API 检查 | PodGroup 废弃版本资源检查 | 集群中存在废弃版本的 PodGroup 资源。 | Kubernetes v1.28 以上版本更新了 PodGroup 的 apiGroups(scheduling.sigs.Kubernetes.io更新为scheduling.x-Kubernetes.io),升级后会导致使用这些资源的服务不可用。 | |
| 废弃 Kubernetes API 资源检查 | 集群使用了已废弃的 Kubernetes API。 | 集群的部分服务使用已废弃的 Kubernetes API,升级后会导致这些服务不可用。 | |
| 审计日志废弃 Kubernetes API 检查 | 未查询到集群审计日志 Topic,请检查集群审计日志是否已开启。 | 集群的部分服务可能使用已废弃的 Kubernetes API,升级集群后可能会导致服务不可用。 | |
| 审计日志移除 Kubernetes API 检查 | 未查询到集群审计日志 Topic,请检查集群审计日志是否已开启。 | 集群的部分服务可能使用已废弃的 Kubernetes API,升级集群后可能会导致服务不可用。 | |
| Kubernetes 集群近 30 天废弃 API 检查 | 集群近 30 天使用了已废弃或已删除的 Kubernetes API。 | 集群的部分服务可能使用已废弃的 Kubernetes API,升级集群后可能会导致服务不可用。 | |
| vpc-cni 兼容性检查 | 未查询到集群审计日志 Topic,请检查集群审计日志是否创建并开启。 | vpc-cni 组件使用了目标 Kubernetes 版本会移除的 API 资源。若不处理,升级后会导致 vpc-cni 组件异常,无法创建Pod。 | 连接集群 后执行命令:kubectl rollout restart daemonset cello -n kube-system,重启 vpc-cni 组件,使其获取最新版本的 endpointslices 资源。完成重启后忽略此条告警项。 |
| 审计日志状态检查 | 集群审计日志未开启,请开启集群审计日志。 | 审计日志未开启或开启未满 24 小时,会影响对已废弃/移除的 Kubernetes API 检查。集群中可能存在对这些 API 的访问,升级后可能导致集群中部分服务不可用。 | |
集群组件状态 | kubernetes 版本检查 | 集群当前版本不满足升级条件。 | 集群当前版本过低或者已是最新版本时,均不允许升级。 | 集群 Kubernetes 版本要满足如下条件:
|
| 集群状态检查 | 集群状态异常。 | 请先恢复集群状态。非 Running 状态可能会导致升级失败。 说明 集群状态中Updating是一个特殊状态, Updating[ClusterVersionUpgrading]代表集群已经在进行版本升级中, Updating[Progressing]代表集群在更新中,此状态不允许再进行集群升级。 | |
| kube-apiserver 组件运行状态检查 | 集群控制面 kube-apiserver 组件异常。 | 集群无法提供 API 服务。 | |
| Etcd 服务状态检查 | 集群控制面 ETCD 服务状态异常。 | ETCD 服务异常可能导致集群无法提供 API 服务。 | |
| kube-controller-manager 运行状态检查 | 集群控制面 kube-controller-manager 服务异常。 | 会导致集群ReplicationController 服务异常。 | |
| cloud-controller-manager 组件运行状态检查 | 集群控制面 cloud-controller-manager 服务异常。 | 会导致集群无法管理火山引擎云资源,集群无法按照预期提供服务。 | |
| kube-scheduler 运行状态检查 | 集群控制面 kube-scheduler 服务异常。 | 集群内资源调度异常,无法正常创建 Pod。 | |
| kube-proxy 组件运行状态检查 | Flannel 网络模型集群的网络插件 kube-proxy 服务异常。 | 集群网络异常,将会造成升级失败。 | |
| vpc-cni 组件运行状态检查 | VPC-CNI 网络模型集群的 vpc-cni 组件 cello 服务异常。 | 集群网络异常,将会造成升级失败。 说明 cello 是 vpc-cni 组件对应 Pod 中的一个容器,主要用于管理节点的辅助弹性网卡,并为 Pod 分配私网 IP。 | |
| scheduler-controller-manager 组件运行状态检查 | 集群控制面 scheduler-controller-manager 服务异常。 | 集群无法提供 API 服务。 | |
| general-webhook 组件运行状态检查 | 集群控制面 general-webhook 服务异常。 | 可能会造成集群 API 请求异常。 | |
| Addon 兼容性检查 | 组件(Addon)兼容性检查不通过。 | 请先升级相关组件的版本, 防止在升级集群后影响组件功能的使用,从而造成集群异常。 | |
| Addon 运行状态检查 |
| 集群中存在异常组件时,不允许升级集群。 | |
| 集群 CLB 状态检查 | 集群关联创建的传统型负载均衡(CLB)实例异常。 | 集群关联创建的 CLB 实例异常会导致集群不可用,从而导致集群升级失败。 | |
| 集群控制面组件资源水位检查 | 集群控制面组件水位过高。 | 集群控制面组件水位过高,可能导致升级过程中出错,对业务造成影响。 | |
| 废弃 addon 升级拦截检查 | 检测到 Kubernetes v1.36 版本起不再支持的组件,升级被拦截。 | 集群安装了目标 Kubernetes 版本不再支持的组件,直接升级可能导致相关能力不可用或后续安全修复缺失。 | |
集群配置检查 | 集群特殊运维操作检查 | 集群处于特殊运维状态,开启了 Debug 模式。 | 检查集群之前是否做过特殊的运维操作,如果集群仍然处于 该特殊运维状态,可能会造成集群升级失败。 | |
| 节点池弹性扩缩容功能是否开启 | 节点池开启了弹性扩缩容。 | 升级集群期间,节点池弹性扩缩容功能暂不可用,因此不允许开启该功能。 | |
| 节点 Kubelet 版本检查 | 节点 Kubelet 版本与集群版本不一致。 | 当节点 Kubelet 版本与集群版本不一致时,直接升级控制面 可能会导致节点异常。 | |
| Kubelet 配置参数检查 | 请检查节点池配置,移除废弃的参数配置。 | Kubelet 参数配置不合法,升级集群后,可能会导致新建节点不可用。 | |
| 节点池配置参数检查 | 使用了 veLinux 2.0 (或 ubuntu 22.04)操作系统的节点池在低于 Kubernetes v1.30 版本中采用 cgroup v1 进行节点初始化。 | 使用 veLinux 2.0 (或 ubuntu 22.04)操作系统的节点池在 Kubernetes v1.30 及以上版本中扩容的新节点采用 cgroup v2 进行节点初始化,因此可能会导致业务在新节点上不可用。 | |
| 节点 cgroup 版本检查 | 节点 cgroup 版本检查未通过。 | Kubernetes v1.36 版本不支持 cgroup v1 节点,直接升级控制面可能导致节点或业务异常。 | |
| 节点池和节点配置兼容性检查 | 节点或节点池配置不兼容目标 Kubernetes 版本。 | 集群节点或节点池配置中存在目标 Kubernetes 版本不兼容项,升级控制面后已有节点、新扩容节点或节点升级流程可能不可用。 |
分类 | 检查项 | 异常原因 | 影响说明 | 修复建议 |
节点健康状态 | 节点状态检查 | 当前节点状态异常。 | 节点状态异常, 不允许升级。 | 请先将节点恢复到 Running 状态后重试。请根据控制台提示信息,排查节点异常原因并修复。 |
节点升级检查 | 节点 Kubernetes 版本检查 | 当前节点版本不支持升级。 | 节点 Kubernetes 版本未通过校验,不允许升级。 | 当前节点的 Kubernetes 版本必须小于目标升级版本。 |
| 节点 Containerd 版本检查 | 节点 Containerd 版本未通过校验。 | 节点 Containerd 版本未通过校验,不允许升级。 | 当前节点的 Containerd 版本必须小于目标 Containerd 升级版本。 |
| 操作系统检查 | 当前节点的操作系统不在支持范围内。 | 节点的操作系统未通过校验,不允许升级。 | |
| 内核参数检查 | 内核参数校验失败。 | 节点的内核参数未通过校验,不允许升级。 | 请关闭节点的内核 swap 参数。您可以执行swapoff -a命令关闭。 |
| 挂载点检查 | 节点存在不可访问的挂载点。 | 影响节点升级时对文件的读写操作,不允许升级。 | 修复节点所有挂载点的权限,使其能够被正常访问。 |
| 关键目录权限检查 | 节点/upgrade目录不支持读写操作。 | 影响节点升级时对文件的读写操作,不允许升级。 | 修复节点/upgrade目录权限,使其支持读写操作。 |
| 内存使用检查 | 节点内存使用过高,超过阈值 90%。 | 影响节点升级任务下发及备份旧数据,不允许升级。 | 请将节点的内存水位降低到 90% 以下。您可以驱逐一部分 Pod 负载,或者在业务低峰期选择升级。 |
| 关键目录磁盘使用检查 | 节点/tmp目录可用空间过小。 | 影响节点升级任务下发及备份旧数据,不允许升级。 | 清理节点/tmp目录下的文件,确保/tmp目录可用空间大于 500 MiB。 |
| 依赖包的安装检查 | 节点存在依赖包未安装。 | 可能导致集群基础功能异常,不允许升级。 | 使用yum或apt命令检查 socat、ebtables-nft、conntrack 等依赖包是否正常安装,并根据检查结果进行修复。 |
| 基础服务检查 | 节点基础服务异常。 | 节点基础服务异常,会引发集群基础功能异常,不允许升级。 | 检查 systemd、journald、chronyd、 Kubelet、Containerd、yum/apt-get 等基础服务是否正常,并根据检查结果进行修复。 |
| DNS 解析检查 | 节点 DNS 解析域名失败。 | 当前节点 DNS 配置无法正常解析对象存储(TOS)地址,不允许升级。 | 检查节点 DNS 配置,使主机可以正常解析 TOS 地址:https://<bucket_name>.<tos_endpoint>的访问。 说明
完整的 TOS 地址示例:https://vke-sh.tos-cn-shanghai.ivolces.com |
| TOS 连通性检查 | 节点访问 TOS 失败。 | 节点升级安装包下载异常,不允许升级。 | |
| InPlacePodVerticalScaling 特性检查 | 集群已开启 InPlacePodVerticalscaling 特性,为避免与节点升级流程冲突,当前升级被拦截。 | 集群开启 InPlacePodVerticalscaling 特性时,为避免与节点升级流程冲突,默认强制拦截升级。 说明 仅在 Kubernetes v1.30 升级至 v1.32 时出现。 | 如果不想被拦截,请通过节点轮转方式处理,例如扩容新节点并基于 InPlacePodVerticalscaling 特性实现在不重建 Pod 的情况下迁移工作负载,然后再缩容节点,用 "滚动替换" 代替 "原地修改"。如有问题,请 提交工单 联系技术支持。 |
节点负载 | 节点可分配资源检查 | 节点可分配的 CPU 或内存资源过小。 | 节点可调度资源过小(CPU < 100 m;内存 < 200 MiB)会导致节点升级失败。 | |
| 节点 MaxPOD 检查 | 已达到节点配置的 Max Pod 上限。 | 已达到节点配置的 Max Pod 上限,无法再创建 Pod,将会导致升级任务的 Pod 无法下发。 | |
| 节点可用资源检查 | 节点实际可用的 CPU 或内存资源过小。 | 节点实际可用资源过小(CPU < 100 m;内存 < 200 MiB)会导致节点升级失败。 | 请清理节点上高负载的 Pod,释放部分资源,保证升级任务的 Pod 正常执行。 |