高危操作一览
业务部署或运行过程中,用户可能会触发不同层面的高危操作,导致不同程度上的业务故障。为了能够更好地帮助用户预估及避免操作风险,本文将从集群/节点、网络与负载均衡、日志、云硬盘多个维度出发,为用户展示哪些高危操作会导致怎样的后果,以及为用户提供相应的误操作解决方案。
集群/节点
分类 |
高危操作 |
导致后果 |
误操作后解决方案 |
---|---|---|---|
Master节点 |
修改集群内节点安全组
说明:
安全组命名规则:集群名称-cce-control-随机数 |
可能导致Master节点无法使用 |
参照新建集群的安全组进行修复,放通安全组。详情请参见集群安全组规则配置。 |
节点到期或被销毁 |
该Master节点不可用 |
不可恢复。 |
|
重装操作系统 |
Master组件被删除 |
不可恢复。 |
|
自行升级Master或者etcd组件版本 |
可能导致集群无法使用 |
回退到原始版本。 |
|
删除或格式化节点/etc/kubernetes等核心目录数据 |
该Master节点不可用 |
不可恢复。 |
|
更改节点IP |
该Master节点不可用 |
改回原IP。 |
|
自行修改核心组件(etcd、kube-apiserver、docker等)参数 |
可能导致Master节点不可用 |
按照推荐配置参数恢复,详情请参见修改CCE集群配置。 |
|
自行更换Master或etcd证书 |
可能导致集群不可用 |
不可恢复。 |
|
Node节点 |
修改集群内节点安全组
说明:
安全组命名规则:集群名称-cce-node-随机数 |
可能导致节点无法使用 |
参照新建集群的安全组进行修复,放通安全组。详情请参见集群安全组规则配置。 |
修改节点DNS配置(/etc/resolv.conf) |
导致内部域名无法正常访问,可能出现插件异常、节点重置升级等基本功能异常
说明:
如果业务需要使用自建DNS,可以在工作负载中配置DNS,请勿修改节点本身的DNS地址,详情请参见工作负载DNS配置说明。 |
参考新建节点中的DNS配置还原。 |
|
节点被删除 |
该节点不可用 |
不可恢复。 |
|
重装操作系统 |
节点组件被删除,节点不可用 |
重置节点,具体请参见重置节点。 |
|
升级内核或容器平台依赖组件(如openvswitch/ipvlan/docker/containerd) |
可能导致节点无法使用或网络异常
说明:
节点运行依赖系统内核版本,如非必要,请不要使用yum update命令更新或重装节点的操作系统内核(使用原镜像或其它镜像重装均属高危操作) |
EulerOS 2.2恢复方式请参见如何解决yum update升级操作系统导致容器网络不可用问题? 非EulerOS 2.2您可以重置节点,具体请参见重置节点。 |
|
更改节点IP |
节点不可用 |
改回原IP。 |
|
自行修改核心组件(kubelet、kube-proxy等)参数 |
可能导致节点不可用、修改安全相关配置导致组件不安全等 |
按照推荐配置参数恢复,详情请参见修改节点池配置。 |
|
修改操作系统配置 |
可能导致节点不可用 |
尝试还原配置项或重置节点,具体请参见重置节点。 |
|
删除或修改/opt/cloud/cce、/var/paas目录,删除数据盘 |
节点不可用 |
重置节点,具体请参见重置节点。 |
|
修改节点内目录权限、容器目录权限等 |
权限异常 |
不建议修改,请自行恢复。 |
|
对节点进行磁盘格式化或分区,包括系统盘、Docker盘和kubelet盘 |
可能导致节点不可用 |
重置节点,具体请参见重置节点。 |
|
在节点上安装自己的其他软件 |
导致安装在节点上的Kubernetes组件异常,节点状态变成不可用,无法部署工作负载到此节点 |
卸载已安装软件,尝试恢复或重置节点,具体请参见重置节点。 |
|
修改NetworkManager的配置 |
节点不可用 |
重置节点,具体请参见重置节点。 |
|
删除节点上的cce-pause等系统镜像 |
导致无法正常创建容器,且无法拉取系统镜像 |
请从其他正常节点复制该镜像恢复 |
|
在ECS侧对节点池下的节点进行规格变更 |
节点的规格与节点池定义的规格不一致,导致在弹性扩缩容时出现非预期现象(多扩或者少扩) |
重新将节点规格变更为节点池下定义的规格,或者删除该节点重新扩容。 |
网络
高危操作 |
导致后果 |
误操作后解决方案 |
---|---|---|
修改内核参数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中配置的规则。 |
容器
高危操作 |
导致后果 |
误操作后解决方案 |
---|---|---|
将负载设置为特权容器,并直接操作主机的硬件设备,误操作节点系统文件等。 例如将启动命令配置为/usr/sbin/init,在容器内使用systemctl,影响节点/lib路径下的系统文件。 |
此操作可能会导致节点所有挂载点被unmount,导致节点异常,并且会影响节点上的Pod正常运行及存储插件功能。 |
禁止移除节点/lib路径下的挂载点,通过重置节点恢复,具体请参见重置节点。 |
负载均衡
高危操作 |
导致后果 |
误操作后解决方案 |
---|---|---|
禁止通过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侧重置。 |
通过Ingress的YAML来自动管理证书。 |
日志
高危操作 |
导致后果 |
误操作后解决方案 |
---|---|---|
删除宿主机/tmp/ccs-log-collector/pos目录 |
日志重复采集 |
无 |
删除宿主机/tmp/ccs-log-collector/buffer目录 |
日志丢失 |
无 |
云硬盘
高危操作 |
导致后果 |
误操作后解决方案 |
备注 |
---|---|---|---|
控制台手动解除挂载EVS |
Pod写入出现IO Error故障 |
删除节点上mount目录,重新调度Pod |
Pod里面的文件记录了文件的采集位置 |
节点上umount磁盘挂载路径 |
Pod写入本地磁盘 |
重新mount对应目录到Pod中 |
Buffer里面是待消费的日志缓存文件 |
节点上直接操作EVS |
Pod写入本地磁盘 |
无 |
无 |
插件
高危操作 |
导致后果 |
误操作后解决方案 |
---|---|---|
后台修改插件相关资源 |
插件异常或引入其他非预期问题 |
通过插件配置页面或开放的插件管理API进行操作 |