Могут ли службы Kubernetes, развернутые helm, настроены на перезапуск при удалении вручную через kubectl? - PullRequest
0 голосов
/ 01 апреля 2019

Я пытаюсь понять природу развертывания руля в целом.У меня есть развертывание, управляемое helm, которое вызывает службу jdbc, используя файл service.yaml.

При развертывании я четко вижу, что служба работает, в соответствии с файлом service.yaml.

Если я вручную удаляю службу, служба остается мертвой.

Мой вопрос: если я вручную удаляю службу с помощью kubectl delete, должна ли служба быть перезапущена, поскольку развертывание управляется штурвалом?Есть ли возможность настроить перезапуск службы даже при удалении вручную?Это стандартное и ожидаемое поведение.

Я перепробовал множество опций и просмотрел документы. Я не могу найти spec / option / config, который приводит к перезапуску сервисов при удалении, в отличие от пакетов, которые имеютопция «Всегда перезапускать».

apiVersion: v1
kind: Service
metadata:
  name: {{ .Values.exampleJDBCService.name }}
  namespace: {{ .Release.Namespace }}
spec:
  type: {{ .Values.exampleJDBCService.type }}
  sessionAffinity: "{{ .Values.sessionAffinity.type }}"
  {{- if (eq .Values.sessionAffinity.type "ClientIP") }}
  sessionAffinityConfig:
    clientIP:
      timeoutSeconds: {{ .Values.sessionAffinity.timeoutSeconds }}
  {{- end }}
  selector:
    {{ template "spark-example.fullname" . }}: "true"
  ports:
    - protocol: TCP
      port: {{ .Values.exampleJDBCService.clusterNodePort }}
      targetPort: {{ .Values.exampleJDBCService.targetPort }}
      {{- if (and (eq .Values.exampleJDBCService.type "NodePort") (not (empty .Values.exampleJDBCService.clusterNodePort))) }}
      nodePort: {{ .Values.exampleJDBCService.clusterNodePort }}
      {{- end }}

Ответы [ 2 ]

1 голос
/ 01 апреля 2019

Вы немного смешиваете вещи.

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

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

Шлем не взаимодействует с удалением объектов в кластере, после создания своих объектов он больше не взаимодействует с ними до следующей команды helm.

Надеюсь, что это поможетВы понимаете термины немного лучше.

0 голосов
/ 01 апреля 2019

Удаленные / поврежденные объекты ресурсов Kubernetes (в вашем случае Service) не могут быть автоматически «перезапущены» румпелем, но, к счастью, могут быть восстановлены до желаемого состояния конфигурации с помощью следующей команды helm:

helm upgrade <your-release-name> <repo-name>/<chart-name> --reuse-values --force

например

helm upgrade my-ingress stable/nginx-ingress --reuse-values --force

Вы также можете использовать:

  helm history <release_name>

  helm rollback --force [RELEASE] [REVISION]

--force аргумент в обоих случаях, принудительно обновлять ресурс через удаление / воссоздание при необходимости

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...