Когда kubernetes helm запускает воссоздание модуля?

#kubernetes #kubernetes-helm

#kubernetes #kubernetes-helm

Вопрос:

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

Например:

 kind: Deployment
spec:
  template:
    metadata:
      annotations:
        checksum/config: {{ include (print $.Template.BasePath "/configmap.yaml") . | sha256sum }}
[...]
  

Но бывают ситуации, когда модуль не воссоздается:

  • Модуль является ошибочным по состоянию CrashLoopBackOff
  • Изменились только метаданные развертывания

Я хотел бы знать, какие события запускают воссоздание модуля:

  • Почему модуль в состоянии CrashLoopBackOff не перезапущен?
  • Почему не все части спецификации рассматриваются для воссоздания модуля?

Редактировать

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

Есть ли причина не перезапускать CrashLookBackOff модуль?

Ответ №1:

Шаблон в a Deployment — это a PodTemplate . Каждый раз, когда изменяется podTemplate, создается новый набор реплик, и он создает новые модули в соответствии с количеством реплик, использующих podTemplate.

 kind: Deployment
spec:
  template:
    # any change here will lead to new Pods
  

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

A CrashLoopBackOff — проблема на уровне модуля Pod, например. это может быть проблема с приложением.

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

Если предоставляется новый образ, у него должно быть свое уникальное имя. Это означает, что всякий раз, когда вы меняете изображение, вам нужно менять имя изображения. Изменение имени изображения — это изменение в podTemplate, поэтому оно всегда будет создавать новые модули и удалять, но не повторно использовать старые модули.

Комментарии:

1. Спасибо за ваш полезный ответ, который ответил на вопрос шаблона! Я отредактировал свой вопрос для части CrashLoopBackOff. Это все еще не ясно для меня.

2. Я расширил свой ответ на эту часть.

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