【问题标题】:Should annotations from IngressClass be applied to Ingress itself?来自 IngressClass 的注释是否应该应用于 Ingress 本身?
【发布时间】: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


【解决方案1】:

【讨论】:

    猜你喜欢
    • 2011-09-13
    • 1970-01-01
    • 2011-07-21
    • 2020-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-04
    • 1970-01-01
    相关资源
    最近更新 更多