文档首页/ 云容器引擎 CCE/ 常见问题/ 网络管理/ 网络异常问题排查/ 工作负载网络异常时,如何定位排查?
更新时间:2024-11-13 GMT+08:00

工作负载网络异常时,如何定位排查?

排查思路

以下排查思路根据原因的出现概率进行排序,建议您从高频率原因往低频率原因排查,从而帮助您快速找到问题的原因。

如果解决完某个可能原因仍未解决问题,请继续排查其他可能原因。

排查项一:容器+容器端口

在CCE控制台界面或者使用kubectl命令查找pod的IP,然后登录到集群内的节点或容器中,使用curl命令等方法手动调用接口,查看结果是否符合预期。

如果容器IP+端口不能访问,建议登录到业务容器内使用“127.0.0.1+端口”进行排查。

常见问题:

  1. 容器端口配置错误(容器内未监听访问端口)。
  2. URL不存在(容器内无相关路径)。
  3. 服务异常(容器内的业务BUG)。
  4. 检查集群网络内核组件是否异常(容器隧道网络模型:openswitch内核组件;VPC网络模型:ipvlan内核组件)。

排查项二:节点IP+节点端口

只有发布为节点访问(NodePort)或负载均衡(LoadBalancer )的服务才能通过节点IP+节点端口进行访问。

  • 节点访问(NodePort)类型:

    节点的访问端口就是节点对外发布的端口。

  • 负载均衡(LoadBalancer )类型:

    负载均衡的节点端口通过“编辑YAML”可以查看。

如下图所示:

nodePort: 30637为节点对外暴露的端口。targetPort: 80为Pod对外暴露的端口。port: 123为服务对外暴露的端口,负载均衡类型的服务同时使用该端口配置ELB的监听器。

找到节点端口(nodePort)后,使用容器所在节点的IP地址+端口进行访问,并查看结果是否符合预期。

常见问题:

  1. 节点的入方向对业务端口未放通。
  2. 节点配置了自定义路由,并且配置错误。
  3. pod的label与service的label不匹配(kubectl或API创建)。

排查项三:负载均衡IP+端口

如果使用负载均衡IP+端口不能访问,但节点IP+端口可以访问。

请排查:

  • 相关端口或URL的后端服务器组是否符合预期。
  • 节点上的安全组是否对ELB暴露了相关的协议或端口。
  • 四层ELB的健康检查是否开启(未开启的话,请开启)。
  • 七层ELB的访问方式中使用的证书是否过期。

常见问题:

  1. 发布四层ELB时,如果客户在界面未开启健康检查,ELB可能会将流量转发到异常的节点。
  2. UDP协议的访问,需要放通节点的ICMP协议。
  3. pod的label与service的label不匹配(kubectl或API创建)。

排查项四:NAT网关+端口

配置在NAT后端的服务器,通常不配置EIP,不然可能会出现网络丢包等异常。

排查项五:检查容器所在节点安全组是否放通

用户可单击服务列表中的“网络 > 虚拟私有云 VPC”,在网络控制台单击“访问控制 > 安全组”,找到CCE集群对应的安全组规则进行修改和加固。

  • CCE集群:

    Node节点的安全组名称是:{集群名}-cce-node-{随机字符}

  • CCE Turbo集群:

    Node节点的安全组名称是:{集群名}-cce-node-{随机字符}

    容器关联的安全组名称是:{集群名}-cce-eni-{随机字符}

请排查:

  • 从集群外访问集群内负载时,来访者的IP地址、端口、协议需在集群安全组的入方向规则中开放。
  • 集群内的工作负载访问外部时,访问的地址、端口、协议需在集群安全组的出方向规则中开放。

更多安全组配置信息请参见集群安全组规则配置