gke удаление групп экземпляров из внутренних балансировщиков нагрузки

У меня есть кластер gke-песочницы с некоторыми службами и некоторыми внутренними балансировщиками нагрузки.

Сервисы в основном определяются так:

apiVersion: v1
kind: Service
metadata:
  labels:
    app: my-app
  name: my-app
  annotations:
    service.beta.kubernetes.io/aws-load-balancer-internal: 0.0.0.0/0
    cloud.google.com/load-balancer-type: "Internal"
spec:
  ports:
  - port: 80
    protocol: TCP
    targetPort: 8080
  selector:
    app: my-app
  sessionAffinity: None
  type: LoadBalancer

Но в конце концов кто-то сообщает, что конечная точка больше не работает (например, два раза в неделю), я иду исследовать, а к балансировщику нагрузки больше не прикреплены группы экземпляров.

Единственные "странные" вещи, которые мы делаем, - это масштабирование всех модулей нашего приложения до 0 реплик в нерабочее время и использование вытесняемых экземпляров в пуле узлов ... Я думал, что это может быть связано с первым, но я принудительно масштабировал отключили некоторые службы, и их балансировщики нагрузки все еще в порядке.

Это может быть связано с вытесняемым, хотя, похоже, что если все модули находятся в одном экземпляре (особенно модули системы куба), когда узел отключается, модули сразу отключаются, и кажется, что он может правильно восстановиться после этого. .

Другая странная вещь, которую я вижу, - это то, что k8s-ig--foobar имеет 0 экземпляров.

Кто-нибудь испытывал что-то подобное? Я не мог найти никаких документов по этому поводу.


person caarlos0    schedule 15.02.2018    source источник
comment
Что говорит kubectl describe service? Есть какие-нибудь интересные аннотации или логи?   -  person Yves Junqueira    schedule 16.02.2018
comment
@YvesJunqueira: нет, все в порядке. Тоже пробовал посмотреть логи на сервисах kube-system, там тоже ничего интересного (да и вообще ничего в большинстве из них) ...   -  person caarlos0    schedule 16.02.2018
comment
Мое лучшее предположение: когда вы выключаете экземпляры, балансировщик нагрузки пытается найти работоспособные экземпляры. Когда он не работает, он, вероятно, использовал экспоненциальный откат или около того, чтобы не повторять слишком много попыток. Возможно, если вы будете держать экземпляры выключенными слишком долго, частота повторных попыток станет примерно один раз в 4 часа, что явно недостаточно, когда вам нужно вернуть экземпляры. Чтобы доказать, что это правильно, вы можете попытаться поднять реплики с 0 каждые 30 минут или около того, а затем снова отключить их ... просто чтобы сбросить повторную попытку. Я предлагаю это не как исправление, а как способ отладки GKE. :-)   -  person Yves Junqueira    schedule 16.02.2018
comment
в этом есть смысл! Но согласно моему недавнему тесту, похоже, что из-за того, что вытесняемые узлы отключаются через 24 часа (и по чистой неудаче, мои работают одновременно), gke удаляет k8s-ig. Когда новые узлы подключены, k8s-ig воссоздается, но не назначается LB. Мне кажется, что это ошибка ...   -  person caarlos0    schedule 16.02.2018
comment
Я постараюсь сообщить им об этом, спасибо за помощь @YvesJunqueira = D   -  person caarlos0    schedule 16.02.2018
comment
FWIW: в качестве обходного пути я изменил свою группу экземпляров, чтобы не использовать вытесняемые экземпляры, поэтому я буду на 100% уверен в том, что происходит - надеюсь: P   -  person caarlos0    schedule 16.02.2018


Ответы (1)


Я обнаружил ошибку, и она была помечена как «не удалось воспроизвести».

Но переход от вытесняемого к «нормальному» экземпляру «решает» проблему.

person caarlos0    schedule 28.02.2018