文档首页> 云容器引擎 CCE> 用户指南> 高危操作及解决方案
更新时间:2024-03-11 GMT+08:00

高危操作及解决方案

业务部署或运行过程中,用户可能会触发不同层面的高危操作,导致不同程度上的业务故障。为了能够更好地帮助用户预估及避免操作风险,本文将从集群/节点、网络与负载均衡、日志、云硬盘多个维度出发,为用户展示哪些高危操作会导致怎样的后果,以及为用户提供相应的误操作解决方案。

集群/节点

表1 集群及节点高危操作

分类

高危操作

导致后果

误操作后解决方案

Master节点

修改集群内节点安全组

说明:

安全组命名规则:集群名称-cce-control-随机数

可能导致Master节点无法使用

参照新建集群的安全组进行修复,放通安全组。详情请参见集群安全组规则配置

节点到期或被销毁

该Master节点不可用

不可恢复。

重装操作系统

Master组件被删除

不可恢复。

自行升级Master或者etcd组件版本

可能导致集群无法使用

回退到原始版本。

删除或格式化节点/etc/kubernetes等核心目录数据

该Master节点不可用

不可恢复。

更改节点IP

该Master节点不可用

改回原IP。

自行修改核心组件(etcd、kube-apiserver、docker等)参数

可能导致Master节点不可用

按照推荐配置参数恢复,详情请参见集群配置管理

自行更换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侧对节点池下的节点进行规格变更

节点的规格与节点池定义的规格不一致,导致在弹性扩缩容时出现非预期现象(多扩或者少扩)

重新将节点规格变更为节点池下定义的规格,或者删除该节点重新扩容。

网络

表2 网络

高危操作

导致后果

误操作后解决方案

修改内核参数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中配置的规则。

负载均衡

表3 Service ELB

高危操作

导致后果

误操作后解决方案

禁止通过ELB的控制台删除已绑定CCE集群的ELB实例

导致Service/Ingress访问不通。

不建议删除。

通过ELB的控制台停用已绑定CCE集群的ELB实例

导致Service/Ingress访问不通。

不建议停用,请自行恢复。

通过ELB的控制台修改ELB的IPv4私有IP

  • 基于IPv4私有IP进行私网流量转发功能会出现中断
  • Service/Ingress的YAML中status字段下的IP变化

不建议修改,请自行恢复。

通过ELB的控制台解绑ELB的IPv4公网IP

解绑公网IP后,该弹性负载均衡器变更为私网类型,无法进行公网流量转发。

请自行恢复。

通过ELB的控制台在CCE管理的ELB创建自定义的监听器

若ELB是创建Service/Ingress时自动创建的,在Service/Ingress删除时无法删除ELB的自定义监听器,会导致无法自动删除ELB。

通过Service/Ingress自动创建监听器,否则需要手动删除ELB。

通过ELB的控制台删除CCE自动创建的监听器

  • 导致Service/Ingress访问不通。
  • 在集群升级等需要重启控制节点的场景,所做修改会被CCE侧重置。

重新创建或更新Service/Ingress。

通过ELB的控制台修改CCE创建的监听器名称、访问控制、超时时间、描述等基本配置

如果监听器被删除,在集群升级等需要重启控制节点的场景,所做修改会被CCE侧重置。

不建议修改,请自行恢复。

通过ELB的控制台修改CCE创建的监听器后端服务器组,添加、删除后端服务器

  • 导致Service/Ingress访问不通。
  • 在集群升级等需要重启控制节点的场景,所做修改会被CCE侧重置:
    • 用户删除的后端服务器会恢复
    • 用户添加的后端服务器会被移除

重新创建或更新Service/Ingress。

通过ELB的控制台更换CCE创建的监听器后端服务器组

  • 导致Service/Ingress访问不通。
  • 在集群升级等需要重启控制节点的场景,后端服务器组中的后端服务器会被CCE侧重置。

重新创建或更新Service/Ingress。

通过ELB的控制台修改CCE创建的监听器转发策略,添加、删除转发规则

  • 导致Service/Ingress访问不通。
  • 如果该转发规则由Ingress添加,在集群升级等需要重启控制节点的场景,所做修改会被CCE侧重置。

不建议修改,请自行恢复。

通过ELB的控制台修改CCE管理的ELB证书

在集群升级等需要重启控制节点的场景,后端服务器组中的后端服务器会被CCE侧重置。

通过Ingress的YAML来自动管理证书。

日志

表4 日志

高危操作

导致后果

误操作后解决方案

删除宿主机/tmp/ccs-log-collector/pos目录

日志重复采集

删除宿主机/tmp/ccs-log-collector/buffer目录

日志丢失

云硬盘

表5 云硬盘

高危操作

导致后果

误操作后解决方案

备注

控制台手动解除挂载EVS

Pod写入出现IO Error故障

删除节点上mount目录,重新调度Pod

Pod里面的文件记录了文件的采集位置

节点上umount磁盘挂载路径

Pod写入本地磁盘

重新mount对应目录到Pod中

Buffer里面是待消费的日志缓存文件

节点上直接操作EVS

Pod写入本地磁盘

插件

表6 插件

高危操作

导致后果

误操作后解决方案

后台修改插件相关资源

插件异常或引入其他非预期问题

通过插件配置页面或开放的插件管理API进行操作