Я пытаюсь настроить интерфейс для двух своих веб-приложений с помощью контроллера входящего трафика в локальном кластере кубернетов. Я выполнил все шаги, описанные в [1] и подробные инструкции в [2]. Но пока что не повезло. Я получил следующую ошибку:

Warning CreatingLoadBalancerFailed Error creating load balancer (will retry): failed to ensure load balancer for service default/frontend: error creating loadbalancer a58617b3f260011e8ad84fa163e0c90a: error creating loadbalancer {a58617b3f260011e8ad84fa163e0c90a
Kubernetes external service a58617b3f260011e8ad84fa163e0c90a 7b4db6f7-3fc1-4c07-a84d-5c15b46e3ac2 <nil> }: Expected HTTP response code [201 202] when accessing [POST https://host.xyz.com:9696/v2.0/lbaas/loadbalancers],
but got 409 instead
{"NeutronError": {"message": "Quota exceeded for resources: ['loadbalancer'].", "type": "OverQuota", "detail": ""}}

И моя служба остается в состоянии ожидания.

Пока я не знаю, где искать, чтобы определить проблему, и был бы признателен за любой совет.

Файл манифеста yaml почти идентичен [2], в нем перечислен только интерфейс https. Но вот для полноты картины

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
   name: frontend
   annotations:
     ingress.kub.webernetes.io/rewrite-target: /
spec:
  tls:
  - secretName: ing-secret
  replicas: 1
  template:
    metadata:
      labels:
        k8s-app: nginx-ingress-lb
  containers:
  - args:
    - /nginx-ingress-controller
    - "--default-backend-service=$(POD_NAMESPACE)/default-http-backend"
    - "--default-ssl-certificate=$(POD_NAMESPACE)/ing-secret"
  env:
    - name: POD_NAME
      valueFrom:
        fieldRef:
          fieldPath: metadata.name
    - name: POD_NAMESPACE
      valueFrom:
        fieldRef:
          fieldPath: metadata.namespace
  image: "gcr.io/google_containers/nginx-ingress-controller:0.9.0-beta.5"
  rules:
  - host: host.xxx.com
    https:
      paths:
      - path: /app1
        backend:
          serviceName: app1
          servicePort: 8881
      - path: /app2
        backend:
          serviceName: app2
          servicePort: 8882
---
apiVersion: v1
kind: Service
metadata:
  name: frontend
spec:
  type: LoadBalancer
  ports:
  - name: https
    port: 443
    targetPort: https
  selector:
    k8s-app: nginx-ingress-lb

[1] https://kubernetes.io/docs/concepts/services-networking/ вход /

[2] https://hackernoon.com/setting-up-nginx -ingress-on-kubernetes-2b733d8d2f45

1
Valentin 13 Мар 2018 в 01:21

2 ответа

Лучший ответ

Похоже, что OpenStack lbaas используется kubernetes для предоставления службы балансировки нагрузки, лежащей в основе входящего ресурса (см. https://host.xyz.com:9696/v2.0/lbaas/loadbalancers в журнале ошибок)

AFAIK эта ошибка указывает на то, что был достигнут предел ресурсов на количество подготовленных балансировщиков нагрузки. Я хотел бы поднять вопрос с администратором вашего кластера.

1
stacksonstacks 12 Мар 2018 в 23:12

Ваш сервис пытается создать новый балансировщик нагрузки в AWS, но квота для вашего региона превышена. Я предполагаю, что у вас их 20, поскольку это значение по умолчанию: https://docs.aws.amazon.com/general/ latest / gr / aws_service_limits.html # limits_elastic_load_balancer

Вот инструкции, как запросить увеличение лимита: https://docs.aws.amazon.com/general/latest/ gr / aws_service_limits.html

0
Christina A 12 Мар 2018 в 22:42