【发布时间】:2022-02-18 17:34:56
【问题描述】:
我在 EKS 中运行一个集群,使用 k8s 1.21.5
我知道默认情况下 k8s 有一个云控制器管理器,可用于创建负载均衡器,默认情况下它将在 AWS 中创建一个经典的 LB。
我意识到 CLB 即将消失,我应该使用 NLB 或 ALB,而是安装 AWS 负载均衡器控制器,但我想弄清楚为什么我的注释不起作用。
我要做的是使用 ACM 证书设置 TLS 侦听,因为默认情况下它的所有设置为 TCP
这是我的注释
# service.beta.kubernetes.io/aws-load-balancer-ssl-cert: arn:aws:acm:<region>:<account>:certificate/<id>
# service.beta.kubernetes.io/aws-load-balancer-backend-protocol: ssl
# service.beta.kubernetes.io/aws-load-balancer-ssl-ports: <port>
我已按照此处的 k8s 文档指定使用哪些注释 https://kubernetes.io/docs/concepts/services-networking/service/#ssl-support-on-aws
我已经在 k8s 代码中检查了这些注释是否存在
https://github.com/kubernetes/kubernetes/blob/v1.21.5/staging/src/k8s.io/legacy-cloud-providers/aws/aws.go#L162 https://github.com/kubernetes/kubernetes/blob/v1.21.5/staging/src/k8s.io/legacy-cloud-providers/aws/aws.go#L167 https://github.com/kubernetes/kubernetes/blob/v1.21.5/staging/src/k8s.io/legacy-cloud-providers/aws/aws.go#L181
当我使用这些注释创建我的服务时,k8s 中的服务显示为待处理
谁能告诉我为什么它不起作用或给我任何见解? 我一直在做的是在创建 LB 后手动配置它,但我不想这样做
【问题讨论】:
-
您的 EKS 云控制器管理器日志说什么?此外,您分配给 EKS 控制平面的角色是否有足够的权限来执行 ACM、ELB 和一堆其他事情?
-
完全忘记了 CP 日志记录。所以刚刚启用它,我收到以下错误,无法确保负载均衡器:CertificateNotFound:找不到密钥的服务器证书:但 ARN 对我的密钥是正确的。证书和我的集群位于不同的区域是否重要?我不认为 ACM 目前在所有地区。但是我可以通过 ELB UI 手动分配相同的证书
标签: amazon-web-services kubernetes aws-load-balancer