簡體   English   中英

EKS 節點未使用 ALB 入口 Controller 在目標組中注冊

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM