高危操作一览
业务部署或运行过程中,用户可能会触发不同层面的高危操作,导致不同程度上的业务故障。为了能够更好地帮助用户预估及避免操作风险,本文将从集群/节点、网络与负载均衡、日志、云硬盘多个维度出发,为用户展示哪些高危操作会导致怎样的后果,以及为用户提供相应的误操作解决方案。
集群/节点
分类 | 高危操作 | 导致后果 | 误操作后解决方案 |
|---|---|---|---|
集群 | 通过kube-apiserver一次性查询大量数据。例如一次性发起大量LIST请求,或单个LIST请求查询大量数据。 | 控制节点内存负载过高,影响系统稳定性。 | 停止大批量查询行为。 如果需要增强集群抗过载能力,您可以变更集群规格至更大的规模,详情请参见变更集群规格。 |
控制节点 | 修改集群控制节点安全组 说明: 控制节点安全组命名规则:集群名称-cce-control-随机数 | 可能导致控制节点无法使用 | 参照新建集群的安全组进行修复,放通安全组。详情请参见集群安全组规则配置。 |
节点到期或被销毁 | 该控制节点不可用 | 不可恢复。 | |
重装操作系统 | 控制节点组件被删除 | 不可恢复。 | |
自行升级控制节点或者etcd组件版本 | 可能导致集群无法使用 | 回退到原始版本。 | |
删除或格式化节点/etc/kubernetes等核心目录数据 | 该控制节点不可用 | 不可恢复。 | |
更改节点IP | 该控制节点不可用 | 改回原IP。 | |
自行修改核心组件(etcd、kube-apiserver、docker等)参数 | 可能导致控制节点不可用 | 按照推荐配置参数恢复,详情请参见修改CCE集群配置。 | |
自行更换控制节点或etcd证书 | 可能导致集群不可用 | 不可恢复。 | |
Node节点 | 修改集群Node节点安全组 说明: Node节点安全组命名规则:集群名称-cce-node-随机数 | 可能导致节点无法使用 | 参照新建集群的安全组进行修复,放通安全组。详情请参见集群安全组规则配置。 |
修改节点DNS配置(/etc/resolv.conf) | 导致内部域名无法正常访问,可能出现插件异常、节点重置升级等基本功能异常 说明: 如果业务需要使用自建DNS,可以在工作负载中配置DNS,请勿修改节点本身的DNS地址,详情请参见工作负载DNS配置说明。 | 参考新建节点中的DNS配置还原。 | |
节点被删除 | 该节点不可用 | 不可恢复。 | |
节点使用的弹性网卡被删除 | 该节点上的容器网络不可用 | 不可恢复。 | |
重装操作系统 | 节点组件被删除,节点不可用 | 重置节点,具体请参见重置节点。 | |
升级内核或容器平台依赖组件(如openvswitch/ipvlan/docker/containerd) | 可能导致节点无法使用或网络异常 说明: 节点运行依赖系统内核版本,如非必要,请不要使用yum update命令更新或重装节点的操作系统内核(使用原镜像或其它镜像重装均属高危操作) | 重置节点,具体请参见重置节点。 | |
更改节点IP | 节点不可用 | 改回原IP。 | |
自行修改核心组件(kubelet、kube-proxy等)参数 | 可能导致节点不可用、修改安全相关配置导致组件不安全等 即使修改完后当时未出现上述情况,在后续集群升级时还可能导致自行修改的参数被重置的问题,详情请参见注意事项。 | 如果出现节点不可用问题,建议按照推荐配置参数恢复,详情请参见节点池配置管理。 同时,建议您通过CCE控制台修改相关配置,以便在集群升级时自动继承。 | |
修改操作系统配置 | 可能导致节点不可用 | 尝试还原配置项或重置节点,具体请参见重置节点。 | |
删除或修改/opt/cloud/cce、/var/paas目录,删除数据盘 | 节点不可用 | 重置节点,具体请参见重置节点。 | |
修改节点内目录权限、容器目录权限等。涉及的目录如下: /usr/lib/systemd/system/kubelet.service /usr/lib/systemd/system/containerd-monit.service /usr/lib/systemd/system/docker-monit.service /opt/cloud/cce /var/paas /var/paas/script /var/paas/sys/log /var/paas/kubernetes /var/script/docker /var/script/kubelet /etc/containerd /etc/rc.local /etc/sudoers.d/sudoerspaas /etc/sysconfig/docker /etc/docker/daemon.json /var/lib/docker /mnt/paas/kubernetes /mnt/paas/runtime | 权限异常 | 不建议修改,请自行恢复。 | |
对节点进行磁盘格式化或分区,包括系统盘、容器运行时和kubelet组件使用的数据盘 | 可能导致节点不可用 | 重置节点,具体请参见重置节点。 | |
在节点上安装自己的其他软件 | 导致安装在节点上的Kubernetes组件异常,节点状态变成不可用,无法部署工作负载到此节点 | 卸载已安装软件,尝试恢复或重置节点,具体请参见重置节点。 | |
修改NetworkManager的配置 | 节点不可用 | 重置节点,具体请参见重置节点。 | |
删除节点上的cce-pause等系统镜像 | 导致无法正常创建容器,且无法拉取系统镜像 | 请从其他正常节点复制该镜像恢复 | |
在ECS侧对节点池下的节点进行规格变更 | 节点的规格与节点池定义的规格不一致,导致在弹性扩缩容时出现非预期现象(多扩或者少扩) | 重新将节点规格变更为节点池下定义的规格,或者删除该节点重新扩容。 | |
删除或者移动containerd组件运行所需的二进制和配置文件 /etc/containerd/config.toml /etc/crictl.yaml /usr/bin/runc /usr/lib/systemd/system/containerd.service /usr/local/bin/containerd /usr/local/bin/containerd-shim-runc-v2 /usr/local/bin/crictl /usr/local/bin/ctr | 删除/usr/local/bin/crictl会导致containerd健康检查异常,containerd不断重启 删除其他文件可能导致容器不能启动,节点无法使用 | 重置节点恢复containerd二进制和配置文件,具体请参见重置节点。 | |
修改或手动创建paas用户/用户组 | 影响CCE组件和业务Pod正常运行,详情请参见节点paas用户/用户组说明。 | 重置节点,具体请参见重置节点。 |
网络
高危操作 | 导致后果 | 误操作后解决方案 |
|---|---|---|
修改内核参数net.ipv4.ip_forward=0 | 网络不通 | 修改内核参数为 net.ipv4.ip_forward=1 |
修改内核参数net.ipv4.tcp_tw_recycle=1 | 导致nat异常 | 修改内核参数 net.ipv4.tcp_tw_recycle=0 |
修改内核参数net.ipv4.tcp_tw_reuse=1 | 导致网络异常 | 修改内核参数 net.ipv4.tcp_tw_reuse=0 |
节点安全组配置未放通容器CIDR的53端口udp | 集群内DNS无法正常工作 | 参照新建集群的安全组进行修复,放通安全组。 详情请参见集群安全组规则配置。 |
删除default-network的network-attachment-definitions的CRD资源 | 容器网络不通,集群删除失败等 | 误删除该资源需要使用正确的配置重新创建default-network资源。 |
启动iptables防火墙 | CCE默认不开启iptables防火墙,开启后可能造成网络不通 说明: 不建议开启iptables防火墙。如必须启动iptables防火墙,请在测试环境中确认/etc/sysconfig/iptables和/etc/sysconfig/ip6tables中配置的规则是否会对网络连通性造成影响。 | 关闭iptables防火墙,并检查/etc/sysconfig/iptables和/etc/sysconfig/ip6tables中配置的规则。 |
容器隧道网络集群节点升级内核或升级openvswitch | 容器网络不通 说明: 容器隧道网络集群数据面组件采用的是华为优化后的openvswitch组件,不支持自行升级为操作系统自带的openvswitch。 |
容器
高危操作 | 导致后果 | 误操作后解决方案 |
|---|---|---|
将负载设置为特权容器,并直接操作主机的硬件设备,误操作节点系统文件等。 例如将启动命令配置为/usr/sbin/init,在容器内使用systemctl,影响节点/lib路径下的系统文件。 | 此操作可能会导致节点所有挂载点被卸载,导致节点异常,并且会影响节点上的Pod正常运行及存储插件功能。 | 禁止移除节点/lib路径下的挂载点,通过重置节点恢复,具体请参见重置节点。 |
使用hostPath方式挂载系统组件目录,如挂载/var/lib/docker下的文件 | 系统组件重启后可能会导致节点上的系统组件目录重建,打断了挂载的inode链接,导致容器内无法正常使用挂载内容 | 不建议挂载系统组件目录 |
负载均衡
高危操作 | 导致后果 | 误操作后解决方案 |
|---|---|---|
禁止通过ELB的控制台删除已绑定CCE集群的ELB实例 | 导致Service/Ingress访问不通。 | 不建议删除。 |
通过ELB的控制台停用已绑定CCE集群的ELB实例 | 导致Service/Ingress访问不通。 | 不建议停用,请自行恢复。 |
通过ELB的控制台修改ELB的IPv4私有IP |
| 不建议修改,请自行恢复。 |
通过ELB的控制台解绑ELB的IPv4公网IP | 解绑公网IP后,该弹性负载均衡器变更为私网类型,无法进行公网流量转发。 | 请自行恢复。 |
通过ELB的控制台在CCE管理的ELB创建自定义的监听器 | 若ELB是创建Service/Ingress时自动创建的,在Service/Ingress删除时无法删除ELB的自定义监听器,会导致无法自动删除ELB。 | 通过Service/Ingress自动创建监听器,否则需要手动删除ELB。 |
通过ELB的控制台删除CCE自动创建的监听器 |
| 重新创建或更新Service/Ingress。 |
通过ELB的控制台修改CCE创建的监听器名称、访问控制、超时时间、描述等基本配置 | 在集群升级等需要重启控制节点的场景,所做修改会被CCE侧重置。 | 不建议修改,请自行恢复。 |
通过ELB的控制台修改CCE创建的监听器后端服务器组,添加、删除后端服务器 |
| 重新创建或更新Service/Ingress。 |
通过ELB的控制台更换CCE创建的监听器后端服务器组 |
| 重新创建或更新Service/Ingress。 |
通过ELB的控制台修改CCE创建的监听器转发策略,添加、删除转发规则 |
| 不建议修改,请自行恢复。 |
通过ELB的控制台给CCE创建的监听器更换证书,或者在ELB的证书管理界面修改CCE通过TLS密钥创建的服务器证书。 | 在集群升级等需要重启控制节点的场景,所做修改会被CCE侧重置, 可能导致Service/Ingress访问不通。 | 通过CCE控制台或YAML方式更新Service/Ingress关联的证书,或者更新Service/Ingress关联的TLS密钥资源。 |
日志
高危操作 | 导致后果 | 误操作后解决方案 |
|---|---|---|
删除宿主机/tmp/ccs-log-collector/pos目录 | 日志重复采集 | 无 |
删除宿主机/tmp/ccs-log-collector/buffer目录 | 日志丢失 | 无 |
监控
高危操作 | 导致后果 | 误操作后解决方案 |
|---|---|---|
云原生监控插件配置中设置的采集分片数量超过推荐值(建议每50个节点配置一个采集分片) | 增加采集分片数会消耗更多的资源,容易导致集群控制节点内存负载过高,影响系统稳定性。 | 修改云原生监控插件的采集分片数,调整为推荐值。 |
云硬盘
高危操作 | 导致后果 | 误操作后解决方案 | 备注 |
|---|---|---|---|
控制台手动解除挂载EVS | Pod写入出现IO Error故障 | 删除节点上mount目录,重新调度Pod | Pod里面的文件记录了文件的采集位置 |
节点上umount磁盘挂载路径 | Pod写入本地磁盘 | 重新mount对应目录到Pod中 | Buffer里面是待消费的日志缓存文件 |
节点上直接操作EVS | Pod写入本地磁盘 | 无 | 无 |
创建PV时带有未在文档中声明的参数 例如,创建PV时,Yaml文件中涉及status、spec.claimRef以及annotation.everest.io/set-disk-metadata等参数,可能造成PV异常 | 此操作可能会绕过创建PV的某些标准流程,从而导致PV状态不符预期(功能不可用或被异常删除) | 在PV被异常删除前,可以修改对应PV的Yaml文件,手动删除相关参数 | 无 |
插件
高危操作 | 导致后果 | 误操作后解决方案 |
|---|---|---|
后台修改插件相关资源 | 插件异常或引入其他非预期问题(例如升级后参数配置被覆盖等) | 通过插件配置页面或开放的插件管理API进行操作 |

