kubernetes 未应用AWS所有注解

disho6za  于 2023-03-22  发布在  Kubernetes
关注(0)|答案(2)|浏览(95)

我正在使用yaml config在AWS中使用kubectl创建网络负载均衡器。负载均衡器创建成功,目标组正确连接。
作为设置的一部分,我已经传递了AWS所需的注解,但在AWS控制台中查看负载均衡器时,所有注解都不适用。
未设置名称,也未启用负载平衡器日志。我获得了一个具有随机字母数字名称的负载平衡器。

apiVersion: v1
kind: Service
metadata:
  name: test-nlb-service
  annotations:
    service.beta.kubernetes.io/aws-load-balancer-name: test-nlb # not set
    service.beta.kubernetes.io/aws-load-balancer-type: nlb
    service.beta.kubernetes.io/aws-load-balancer-scheme: internet-facing
    service.beta.kubernetes.io/aws-load-balancer-ssl-negotiation-policy: ELBSecurityPolicy-2016-08
    service.beta.kubernetes.io/aws-load-balancer-ssl-cert: arn:aws:acm:eu-central-1:***********:certificate/*********************
    service.beta.kubernetes.io/aws-load-balancer-backend-protocol: "tcp,http"
    service.beta.kubernetes.io/aws-load-balancer-ssl-ports: 443,8883
    service.beta.kubernetes.io/aws-load-balancer-proxy-protocol: "*"
    service.beta.kubernetes.io/aws-load-balancer-additional-resource-tags: "environment=dev,app=test, name=test-nlb-dev"
    service.beta.kubernetes.io/aws-load-balancer-access-log-enabled: "true" # not set
    service.beta.kubernetes.io/aws-load-balancer-access-log-emit-interval: "15" # not set
    service.beta.kubernetes.io/aws-load-balancer-access-log-s3-bucket-name: "random-bucket-name" # not set
    service.beta.kubernetes.io/aws-load-balancer-access-log-s3-bucket-prefix: "random-bucket-name/dev/test-nlb-dev" # not set
  labels:
    app: test
spec:
  ports:
    - name: mqtt
      protocol: TCP
      port: 443
      targetPort: 8080
    - name: websocket
      protocol: TCP
      port: 8883
      targetPort: 1883
  type: LoadBalancer
  selector:
    app: test

如果有人能指出这里的问题是什么?我使用的是kubectl v1.19和Kubernetes v1.19

bq9c1y66

bq9c1y661#

我认为这是一个版本问题。我假设您正在运行树内云控制器,而不是外部云控制器(请参阅此处)。
注解service.beta.kubernetes.io/aws-load-balancer-name甚至在kubernetes的master branch中也不存在。
这并不能解释为什么其他注解不起作用。事实上,在这里你可以看到kubernetes 1.19.12支持哪些注解,你提到的其他不起作用的注解在源代码中列出。
您可以在controller-manager日志中找到更多信息。
我的建议是禁用controller manager中的树内云控制器并运行standalone version

w46czmvw

w46czmvw2#

有2个Kubernetes控制器可以触摸表单的注解
service.beta.kubernetes.io/aws-load-balancer-*
一个内置于kubernetes aws-cloud-controller-manager
(and运行在EKS主机上,因此您看不到它。)
另一个是kubernetes插件aws-load-balancer-controller
(If如果你没有安装这个,它们将被忽略,所以基本上如果你按照https://kubernetes-sigs.github.io/aws-load-balancer-controller/v2.4/deploy/installation/安装它,你的问题应该得到解决。
https://www.doit.com/demystifying-the-kubernetes-aws-lb-controller/
深入解释了这个主题,应该是一个很好的资源。
(免责声明:我是链接文章的作者。同样有趣的是,这篇文章和其他几篇文章启发了我写这篇文章。)

相关问题