Как я могу сделать так, чтобы Kubernetes масштабировал свое развертывание, основываясь на статусе «Готов» / «Не готов» моих модулей? - PullRequest
0 голосов
/ 07 февраля 2019

У меня есть развертывание с определенным номером replicas.Я использую датчик готовности для связи, если мой Pod готов / не готов обрабатывать новые соединения - мои Pod переключаются между состояниями ready / not ready в течение их срока службы.

Я хочу, чтобы Kubernetes увеличил масштаб развертывания /вниз, чтобы убедиться, что в состоянии ready всегда есть желаемое количество стручков.

Пример:

  • Если replicas равно 4 и в * 1013 есть 4 стручка* состояние, то Kubernetes должен сохранить текущий счетчик реплик.
  • Если replicas равен 4 и имеется 2 ready стручков и 2 not ready стручков, то Kubernetes должен добавить еще 2 стручка.

Как сделать так, чтобы Kubernetes масштабировал мое развертывание, основываясь на состоянии "Готов" / "Не готов" моих модулей?

Ответы [ 3 ]

0 голосов
/ 07 февраля 2019

Убедиться в том, что у вас всегда запущено 4 модуля, можно указать свойство replicas в определении развертывания:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  labels:
    app: nginx
spec:
  replicas: 4  #here we define a requirement for 4 replicas
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.7.9
        ports:
        - containerPort: 80

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

0 голосов
/ 07 февраля 2019

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

0 голосов
/ 07 февраля 2019

Нельзя запланировать развертывания на нездоровых узлах в кластере.Мастер API будет создавать модули только на тех узлах, которые исправны и соответствуют критериям квоты, для создания любых дополнительных модулей на узлах, которые можно планировать.

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

...