[英]EKS Nodes not Registering in Target Group using ALB Ingress Controller
我已按照以下 AWS 文檔創建 ALB 入口 controller;
https://aws.amazon.com/premiumsupport/knowledge-center/eks-alb-ingress-controller-setup/
EKS:版本:1.19
所有服務均已成功創建,沒有錯誤。
但不幸的是,節點未在 ALB 的目標組中注冊。
我還嘗試了使用不同版本的 alb ingress controller,但發現了相同的問題。
使用了示例應用程序;
kubectl apply -f https://raw.githubusercontent.com/kubernetes-sigs/aws-load-balancer-controller/v2.1.3/docs/examples/2048/2048_full.yaml
Output以下;
入口 -->
[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
目標組綁定 -->
[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
但實例未附加到目標組;
有人可以在這里支持嗎
我嘗試過另一種選擇,
描述目標組綁定 -->
[centos@ip-10-0-68-81 ~]$ kubectl describe targetgroupbinding -n prod-env --kubeconfig=$prod | grep Target
Kind: TargetGroupBinding
Target Group ARN: arn:aws:elasticloadbalancing:us-east-1:123456789098:targetgroup/k8s-prodenv-prodadmi-873264jwesa/87432kjfhkjds
Target Type: instance
並獲取目標組的 arn,並使用 targetgroupbinding api 創建額外的 targetgroupbinding,這對我有用;
apiVersion: elbv2.k8s.aws/v1beta1
kind: TargetGroupBinding
metadata:
name: k8s-uat-test-1
namespace: "uat-env"
labels:
k8s/environment: staging
spec:
serviceRef:
name: uat-test-service
port: 3002
targetGroupARN: arn:aws:elasticloadbalancing:us-east-1:123456789098:targetgroup/k8s-prodenv-prodadmi-873264jwesa/87432kjfhkjds
我有完全相同的問題,只是更新的集群版本(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]"}
這讓我看了一下安全組配置。 我注意到我將主集群組附加到節點以及它們的正常節點到節點組,這是多余的。
由於我使用terraform
進行部署和官方aws-eks
模塊 [1],因此我只需從節點組配置中刪除此參數:
attach_cluster_primary_security_group = true
部署后,重新啟動入口 controller 后,它會自動獲取服務並創建必要的資源。
[1] https://github.com/terraform-aws-modules/terraform-aws-eks
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.