高危操作一览
业务部署或运行过程中,用户可能会触发不同层面的高危操作,导致不同程度上的业务故障。为了能够更好地帮助用户预估及避免操作风险,本文将从集群/节点、网络与负载均衡、日志、云硬盘多个维度出发,为用户展示哪些高危操作会导致怎样的后果,以及为用户提供相应的误操作解决方案。
集群/节点
| 
         分类  | 
       
         高危操作  | 
       
         导致后果  | 
       
         误操作后解决方案  | 
      
|---|---|---|---|
| 
         集群  | 
       
         通过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命令更新或重装节点的操作系统内核(使用原镜像或其它镜像重装均属高危操作)  | 
       
         EulerOS 2.2恢复方式请参见如何解决yum update升级操作系统导致容器网络不可用问题? 非EulerOS 2.2您可以重置节点,具体请参见重置节点。  | 
      |
| 
         更改节点IP  | 
       
         节点不可用  | 
       
         改回原IP。  | 
      |
| 
         自行修改核心组件(kubelet、kube-proxy等)参数  | 
       
         可能导致节点不可用、修改安全相关配置导致组件不安全等  | 
       
         按照推荐配置参数恢复,详情请参见修改节点池配置。  | 
      |
| 
         修改操作系统配置  | 
       
         可能导致节点不可用  | 
       
         尝试还原配置项或重置节点,具体请参见重置节点。  | 
      |
| 
         删除或修改/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  | 
       
         权限异常  | 
       
         不建议修改,请自行恢复。  | 
      |
| 
         对节点进行磁盘格式化或分区,包括系统盘、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路径下的系统文件。  | 
       
         此操作可能会导致节点所有挂载点被卸载,导致节点异常,并且会影响节点上的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目录  | 
       
         日志丢失  | 
       
         无  | 
      
监控
| 
         高危操作  | 
       
         导致后果  | 
       
         误操作后解决方案  | 
      
|---|---|---|
| 
         云原生监控插件配置中设置的采集分片数量超过推荐值(建议每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进行操作  |