文档首页/ 云容器引擎 CCE/ 常见问题/ 网络管理/ 网络异常/ 集群节点使用networkpolicy概率性出现panic问题
更新时间:2024-07-02 GMT+08:00

集群节点使用networkpolicy概率性出现panic问题

问题场景

集群版本:v1.15.6-r1版本

集群类型:CCE集群

网络模式:容器隧道网络模式

节点操作系统:CentOS 7.6

上述集群的用户配置使用networkpolicy后,由于节点上canal-agent网络组件与CentOS 7.6内核存在不兼容,概率性导致CentOS 7.6的节点panic。

受影响范围

以下三条为必要条件,若有一条不满足,则您不会受到此问题的影响:

  • v1.15.6-r1容器隧道网络模式集群。
  • canal-agent组件版本为1.0.RC10.1230.B005或更低版本的CentOS 7.6节点(简单的判断方法为2021年2月23日及之前创建的节点)。
  • 计划使用或已配置使用networkpolicy规则。

排查方法

快速排查方法(适用于节点为按需计费类型)

若您的节点为按需计费类型,可从cce-console上查看节点创建时间,对创建于2021年2月24日及之后的新建CentOS 7.6节点已无该问题。

准确排查方法(通用)

若您的集群版本为v1.15.6-r1,网络模式为容器隧道网络,节点操作系统为CentOS 7.6,而canal-agent组件版本为1.0.RC10.1230.B005.sp1或更高版本,则无此问题;若低于此版本(例如1.0.RC10.1230.B005、1.0.RC10.1230.B003、1.0.RC10.1230.B002),则建议您重置/删除对应节点后再使用networkpolicy。

执行以下步骤查询节点网络组件版本

  1. 准备可执行kubectl的节点。
  2. 执行如下命令查询存量CentOS节点列表:

    for node_item in $(kubectl get nodes --no-headers | awk '{print $1}') ; do kubectl get node ${node_item} -o yaml | grep CentOS >/dev/null; if [[ "$?" == "0" ]];then echo "${node_item} is CentOS node";fi;done

    回显如图:

  3. 假定用户CentOS节点的ip为10.0.50.187 (请替换为实际IP),执行下述命令查看canal-agent版本:

    kubectl get packageversions.version.cce.io 10.0.50.187 -o yaml | grep -A 1 canal-agent

    回显如图:

解决办法

如果您希望继续使用该节点资源,建议重置所属集群中的CentOS 7.6节点,以升级节点上网络组件到最新版本,具体操作请参考重置节点

如果您希望删除该隐患节点后重新购买,具体操作请参考删除节点购买节点