【问题标题】:Ingress does not update ALBIngress 不更新 ALB
【发布时间】:2020-01-25 16:18:19
【问题描述】:

我在 EKS 集群上运行 AWS 上的 ALB。我正在尝试在路由上应用 Ingress 资源的更改,以便它指向不同的后端。

以下 Ingress 的唯一区别是后端规范。

为什么更新不起作用?如何更新 ALB 上的路由?

原始入口:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: my-ingress
  namespace: default
  annotations:
    kubernetes.io/ingress.class: alb
    alb.ingress.kubernetes.io/scheme: internet-facing
    alb.ingress.kubernetes.io/backend-protocol: HTTP
    alb.ingress.kubernetes.io/listen-ports: '[{"HTTP": 80}]'
  labels:
    app: api    
    type: ingress
spec:  
  backend:
    serviceName: api-service
    servicePort: 80 

更新入口:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: my-ingress
  namespace: default
  annotations:
    kubernetes.io/ingress.class: alb
    alb.ingress.kubernetes.io/scheme: internet-facing
    alb.ingress.kubernetes.io/backend-protocol: HTTP
    alb.ingress.kubernetes.io/listen-ports: '[{"HTTP": 80}]'
  labels:
    app: api    
    type: ingress
spec:  
  backend:
    serviceName: offline-service
    servicePort: 9001 

控制器:

apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app.kubernetes.io/name: alb-ingress-controller
  name: alb-ingress-controller
  namespace: kube-system
spec:
  selector:
    matchLabels:
      app.kubernetes.io/name: alb-ingress-controller
  template:
    metadata:
      labels:
        app.kubernetes.io/name: alb-ingress-controller
    spec:
      containers:
        - name: alb-ingress-controller
          args:           
            - --ingress-class=alb
            - --cluster-name=cluster-22           
          env:           
            - name: AWS_ACCESS_KEY_ID
              value: key           
            - name: AWS_SECRET_ACCESS_KEY
              value: key          
          image: docker.io/amazon/aws-alb-ingress-controller:v1.1.3
      serviceAccountName: alb-ingress-controller 

【问题讨论】:

  • 可以通过描述 Ingress 服务 (kubectl describe service my-ingress-controller-service) 和检查 kube-controller-manager 日志 (kubectl logs --namespace=kube-system kube-controller-manager-...) 找到 Ingress 更新日志。看看当你更新你的配置时发生了什么,如果可能的话,用信息更新你的问题。
  • Yeo @EduardoBaitello 是对的。经常发生的情况是 ingress 中定义的服务之一无法访问,此时 ALB-ingress 控制器决定它不会更新 AWS ALB 中的任何规则。
  • 是的,我仍然没有部署离线服务服务。我会尝试这样做。
  • 这很可能是问题所在。
  • 是的,这是个问题。谢谢大家。

标签: amazon-web-services kubernetes kubernetes-ingress aws-alb


【解决方案1】:

发布来自 cmets 的信息作为答案(社区 wiki):

经常发生的情况是入口中定义的服务之一 不可达,此时 ALB 入口控制器决定 它不会更新 AWS ALB 中的任何规则。

你必须部署一个离线服务。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-07-03
    • 2019-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-18
    • 1970-01-01
    相关资源
    最近更新 更多