jaw*_*846 4 amazon-web-services kubernetes-ingress amazon-eks aws-application-load-balancer
我已按照以下 AWS 文档创建了 ALB 入口控制器;
https://aws.amazon.com/premiumsupport/knowledge-center/eks-alb-ingress-controller-setup/
EKS:版本:1.19
所有服务均已成功创建,没有错误。
但不幸的是,这些节点没有注册到 ALB 的目标组中。
我还尝试了不同版本的 alb 入口控制器,但发现了同样的问题。
使用示例应用程序;
kubectl apply -f https://raw.githubusercontent.com/kubernetes-sigs/aws-load-balancer-controller/v2.1.3/docs/examples/2048/2048_full.yaml
Run Code Online (Sandbox Code Playgroud)
输出如下;
入口 -->
[centos@ip-10-1-68-249 alb-controller]$ kubectl get ing -n game-2048 -o wide
Warning: extensions/v1beta1 Ingress is deprecated in v1.14+, unavailable in v1.22+; use networking.k8s.io/v1 Ingress
NAME CLASS HOSTS ADDRESS PORTS AGE
ingress-2048 <none> * k8s-game2048-ingress2-253e697ad8-1355143956.us-east-1.elb.amazonaws.com 80 81s
Run Code Online (Sandbox Code Playgroud)
目标组绑定 -->
[centos@ip-10-1-68-249 alb-controller]$ kubectl get TargetGroupBinding -n game-2048 -o wide
NAME SERVICE-NAME SERVICE-PORT TARGET-TYPE ARN AGE
k8s-game2048-service2-3c0ccb9f36 service-2048 80 ip arn:aws:elasticloadbalancing:us-east-1:xxxxxxxxxxxx:targetgroup/k8s-game2048-service2-3c0ccb9f36/faa10866343a792f 3m30s
Run Code Online (Sandbox Code Playgroud)
但该实例未附加到目标组;
这里有人可以支持吗
我遇到了完全相同的问题,只是更新的集群版本(1.22)。问题出在受管节点的安全组配置上。
aws-load-balancer-controller在浏览Pod日志时,第一个出现问题的迹象就显而易见了
我注意到一个错误:
{"...","error":"expect exactly one securityGroup tagged with kubernetes.io/cluster/... for eni eni-0d46id..., got: [sg-081baacc1d925f936 sg-0a11d768e92737297]"}
Run Code Online (Sandbox Code Playgroud)
这让我开始关注安全组配置。我注意到我将主集群组以及它们的正常节点到节点组直接附加到节点,这是多余的。
由于我用于terraform部署和官方aws-eks模块[1],因此我只需从节点组配置中删除此参数:
attach_cluster_primary_security_group = true
Run Code Online (Sandbox Code Playgroud)
部署后,重新启动入口控制器后,它会自动获取服务并创建必要的资源。
[1] https://github.com/terraform-aws-modules/terraform-aws-eks
| 归档时间: |
|
| 查看次数: |
10446 次 |
| 最近记录: |