Linux DevOps Network

Kubernetes blue-green 502 error

15.08.2019

Проблема

Во время, казалось бы, blue-green деплоя в k8s кластер, когда минимум 2 реплики, иногда проскакивают 502-е ошибки bad gateway.

Причина

Процесс в контейнере завершается быстрее, чем разойдутся правила iptables по нодам кластера (сервис продолжает слать трафик на удаленный контейнер).

Решение

Добавить sleep в prestop контейнера (sleep должен укладываться в grace период деплоймента).

spec:
  containers:
      - name: "example-app"
        image: "hello-world:{{image_tag}}"
        livenessProbe:
          httpGet:
            path: "/liveness"
            port: 80
        readinessProbe:
          httpGet:
            path: "/readiness"
            port: 80
          initialDelaySeconds: 5
        lifecycle:
          preStop:
            exec:
              command: ["/bin/sh", "-c", "sleep 20"]

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *