【发布时间】:2023-02-08 03:37:24
【问题描述】:
我对 IngressClass 的工作方式有点困惑。我将 ALB 的所有注释移至 IngressClass 并将其设为默认注释,但是,我注意到无法创建负载均衡器,因为找不到证书。
默认入口类:
apiVersion: networking.k8s.io/v1
kind: IngressClass
metadata:
annotations:
alb.ingress.kubernetes.io/certificate-arn: arn:aws:acm:ap-southeast-2:000045211111:certificate/ee65c0af-044b-4c48-abc6-b4b44d4a3c76
alb.ingress.kubernetes.io/listen-ports: '[{"HTTPS":443}]'
alb.ingress.kubernetes.io/scheme: internet-facing
alb.ingress.kubernetes.io/target-type: ip
alb.ingress.kubernetes.io/wafv2-acl-arn: arn:aws:wafv2:ap-southeast-2:000045211111:regional/webacl/waf-api-regional-1e3042/d495cc4f-b24f-4465-afb4-ae5df32acb56
ingressclass.kubernetes.io/is-default-class: "true"
labels:
app.kubernetes.io/component: controller
name: alb-default
spec:
controller: ingress.k8s.aws/alb
当我将所有这些注释移动到 Ingress 本身时,负载均衡器可以成功创建。我认为注释是从 IngressClass 中获取的,并在创建时应用于 Ingress 本身。
我从 terraform 管理 IngressClass 并在基础设施配置期间填充这些值,这样我就不需要再次复制资源的 ARN 并在使用 Helm 将服务部署到 k8s 时提供它们。
我错过了什么吗?有没有什么办法解决这一问题?
谢谢。
【问题讨论】:
-
我觉得你少了
kubernetes.io/ingress.class: alb -
@Adiii,我尝试过使用和不使用它。没用。如果我没记错的话,这是一个旧注释,在 1.18 之后被弃用。
-
控制器日志中的任何内容?或入口类中的任何事件?
-
是的,找不到证书,因为它是 HTTPS。
标签: kubernetes kubernetes-ingress aws-application-load-balancer