¿Es posible decirle a Kubernetes que simplemente tire mi cápsula actual y la vuelva a crear cada 48 horas? ¿Hay algún tipo de planificador en Google Cloud Kubernetes? ¿O puedo configurar mi implementación de esta manera? Tengo una aplicación Node.js en contenedor con Docker ejecutándose dentro de un clúster de Kubernetes en Google Cloud Platform. ¡Gracias de antemano!

1
Nick 10 sep. 2018 a las 10:24

3 respuestas

La mejor respuesta

La verdadera "forma de Kubernetes" para resolver este problema es diseñar ReadinessProbe / LivenessProbe para el despliegue de su aplicación / statefulset / pod. Una vez que su Pod caiga, las sondas correctas lo manejarán y su Pod se recreará de forma completamente automática.

PD: usted es quien conoce mejor su aplicación que nadie. Intente resolver "cada 48 horas" y luego realice las sondas correctas. ¡Buena suerte!

Enlace: https://kubernetes.io/docs / tareas / configure-pod-container / configure-liveness-readiness-sondas /

2
Konstantin Vustin 10 sep. 2018 a las 10:43

¿Probaste CronJobs?

apiVersion: batch/v1beta1
kind: CronJob
metadata:
  name: hello
spec:
  schedule: "*/1 * * * *"
  jobTemplate:
    spec:
      template:
        spec:
          containers:
          - name: your_app_name
            image: your_image
            args:
            - your
            - args
          restartPolicy: OnFailure

Son documentos oficiales de Kubernetes en trabajos cron.

Además, aquí hay un editor de expresiones de programación cron que podría ser útil: crontab.guru.

0
Michael Hausenblas 10 sep. 2018 a las 08:23

Por lo que entiendo, hay dos formas de lograr esto. Supongo que su aplicación se está ejecutando como una implementación en kubernetes, por lo que eliminar el pod debería crear una nueva.

  1. Salga de su aplicación de nodo después de 48 horas, es decir, salga de su código, de una manera sucia, pero es más simple.
  2. Cree un cronjob que se ejecuta después de 48 horas y elimine cualquier pod creado bajo su despliegue.
0
Talha Irfan 10 sep. 2018 a las 11:05