You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

OpenShift 4.11中AWS LoadBalancer Controller配置NLB IP目标类型异常

问题解决:OpenShift 4.11中AWS NLB IP模式目标组无目标,控制器无法解析Pod ENI

核心问题

AWS Load Balancer Controller无法获取Pod对应的AWS ENI信息,导致无法将Pod注册到NLB的目标组,根源通常是网络配置、权限不足或CNI插件不兼容。

排查与解决步骤

1. 确认CNI插件兼容性

OpenShift 4.11默认使用OVN-Kubernetes Overlay网络,Pod IP为集群内部私有IP,不属于AWS VPC子网范围,也没有关联AWS ENI,因此无法支持NLB的ip目标类型。

  • 若要使用NLB IP模式,需切换至AWS VPC CNI插件:
    • 执行命令检查当前CNI插件:oc get network.config.openshift.io cluster -o jsonpath='{.status.networkType}'
    • 切换为AWS VPC CNI:编辑集群网络配置,将spec.networkType设置为AmazonVPC,等待集群重新配置完成。

2. 验证控制器IAM权限

AWS Load Balancer Controller需要足够的AWS API权限来查询Pod的ENI信息:

  • 确认控制器对应的ServiceAccount(通常是aws-load-balancer-controller所在命名空间的SA)已绑定包含以下权限的IAM角色:
    • ec2:DescribeNetworkInterfaces
    • ec2:DescribeInstances
    • ec2:DescribeSubnets
  • 若通过Operator安装,检查Operator是否正确配置了IRSA(IAM Roles for Service Accounts)绑定,确保权限生效。

3. 检查节点与Pod状态

  • 确认报错的Pod(titan/titan-stream-connect-runner-backup-596bdd6cc5-ngnds)处于Running状态,网络正常:oc describe pod titan-stream-connect-runner-backup-596bdd6cc5-ngnds -n titan
  • 检查Pod所在节点的实例角色是否具备ec2:DescribeNetworkInterfaces权限,节点需能被控制器查询到ENI信息。

4. 检查TargetGroupBinding配置

  • 查看TargetGroupBinding资源的详细配置,确认参数正确:
    oc get targetgroupbindings elbv2.k8s.aws/k8s-titan-titan-999b29c596 -n titanlive -o yaml
    
  • 确认spec.targetType为ip,spec.serviceRef指向正确的Service,spec.targetGroupARN与AWS控制台中的目标组ARN一致。

5. 查看控制器日志进一步定位

  • 查看AWS Load Balancer Controller的日志,获取更详细的错误上下文:
    oc logs -n <控制器命名空间> deployment/aws-load-balancer-controller -f
    
  • 若日志显示权限相关错误,需补充对应的IAM权限;若显示ENI未找到,需确认CNI插件是否正确分配了ENI给Pod。

内容的提问来源于stack exchange,提问作者MOUSSAOUI Abdelmajid

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 10:35:22