3

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

下面的 Ingresses 的唯一区别是后端规范。

为什么更新不起作用?如何更新 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 
4

1 回答 1

1

从评论中发布信息作为答案(社区维基):

经常发生的情况是 ingress 中定义的服务之一无法访问,此时 ALB-ingress 控制器决定它不会更新 AWS ALB 中的任何规则。

您必须部署离线服务。

于 2019-10-03T08:04:12.547 回答