华为云-云容器引擎(CCE)-高危操作及解决方案
业务部署或运行过程中,用户可能会触发不同层面的高危操作,导致不同程度上的业务故障。为了能够更好地帮助用户预估及避免操作风险,本文将从集群/节点维度出发,为用户展示哪些高危操作会导致怎样的后果,以及为用户提供相应的误操作解决方案。
集群/节点
集群及节点高危操作
分类 | 高危操作 | 导致后果 | 误操作后解决方案 |
---|---|---|---|
master节点 | 修改集群内节点安全组 | 可能导致master节点无法使用 说明:命名规则:集群名称-cce-control-随机数 | 参照新建集群的安全组进行修复,放通安全组。 |
节点到期或被销毁 | 该master节点不可用 | 不可恢复。 | |
重装操作系统 | master组件被删除 | 不可恢复。 | |
自行升级master或者etcd组件版本 | 可能导致集群无法使用 | 回退到原始版本。 | |
删除或格式化节点/etc/kubernetes等核心目录数据 | 该master节点不可用 | 不可恢复。 | |
更改节点IP | 该master节点不可用 | 改回原IP。 | |
自行修改核心组件(etcd、kube-apiserver、docker等)参数 | 可能导致master节点不可用 | 按照推荐配置参数恢复,详情请参见配置管理。 | |
自行更换master或etcd证书 | 可能导致集群不可用 | 不可恢复。 | |
worker节点 | 修改集群内节点安全组 | 可能导致节点无法使用 说明:命名规则:集群名称-cce-node-随机数 | 参照新建集群的安全组进行修复,放通安全组。 |
节点被删除 | 该节点不可用 | 不可恢复。 | |
重装操作系统 | 节点组件被删除,节点不可用 | 重置节点,具体请参见重置节点。 | |
升级节点内核 | 可能导致节点无法使用或网络异常 说明:CCE集群依赖系统内核版本,如非必要,请不要使用yum update更新或重装节点的操作系统内核(使用原镜像或其它镜像重装均属高危操作) | EulerOS 2.2恢复方式请参见如何解决yum update升级操作系统导致容器网络不可用问题? 非EulerOS 2.2您可以重置节点,具体请参见重置节点。 | |
更改节点IP | 节点不可用 | 改回原IP。 | |
自行修改核心组件(kubelet、kube-proxy等)参数 | 可能导致节点不可用、修改安全相关配置导致组件不安全等 | 按照推荐配置参数恢复,详情请参见操作场景。 | |
修改操作系统配置 | 可能导致节点不可用 | 尝试还原配置项或重置节点,具体请参见重置节点。 | |
删除/opt、/var/paas目录,删除数据盘 | 节点不可用 | 重置节点,具体请参见重置节点。 | |
修改节点内目录权限、容器目录权限等 | 权限异常 | 不建议修改,请自行恢复。 | |
对节点进行磁盘格式化或分区 | 节点不可用 | 重置节点,具体请参见重置节点。 | |
在节点上安装自己的其他软件 | 导致安装在节点上的Kubernetes组件异常,节点状态变成不可用,无法部署工作负载到此节点 | 卸载已安装软件,尝试恢复或重置节点,具体请参见重置节点。 |
网络与负载均衡
网络与负载均衡
高危操作 | 导致后果 | 误操作后解决方案 |
---|---|---|
修改内核参数net.ipv4.ip_forward=0 | 网络不通 | 修改内核参数为 net.ipv4.ip_forward=1 |
修改内核参数net.ipv4.tcp_tw_recycle=1 | 导致nat异常 | 修改内核参数 net.ipv4.tcp_tw_recycle=0 |
节点安全组配置未放通容器CIDR的53端口udp | 集群内DNS无法正常工作 | 参照新建集群的安全组进行修复,放通安全组。 |
通过ELB的控制台在CCE管理的ELB创建自定义的监听器 | 所做修改被CCE侧重置 | 通过service的yaml来自动创建监听器。 |
通过ELB的控制台在CCE管理的ELB绑定自定义的后端rs | 禁止手动绑定后端rs。 | |
通过ELB的控制台修改CCE管理的ELB的证书 | 通过ingress的yaml来自动管理证书。 | |
通过ELB的控制台修改CCE管理的ELB监听器名称 | 禁止修改CCE管理的ELB监听器名称。 |
日志
高危操作 | 导致后果 | 误操作后解决方案 |
---|---|---|
删除宿主机 /tmp/ccs-log-collector/pos 目录 | 日志重复采集 | 无 |
删除宿主机 /tmp/ccs-log-collector/buffer 目录 | 日志丢失 | 无 |
云硬盘
云硬盘
高危操作 | 导致后果 | 误操作后解决方案 | 备注 |
---|---|---|---|
控制台手动解挂EVS | Pod写入报io error | 删掉node上mount目录,重新调度Pod | Pod里面的文件记录了文件的采集位置 |
节点上umount磁盘挂载路径 | Pod写入本地磁盘 | 重新mount对应目录到Pod中 | Buffer里面是待消费的日志缓存文件 |
节点上直接操作EVS | Pod写入本地磁盘 | 无 | 无 |