Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

173
Visualizações
Reinicie el pod de Kubernetes cuando ocurra un cambio en otro

La app de dos pods y postgres se crearon correctamente y pueden comunicarse a través de los servicios de cada uno en un nodo. En el proceso actual, los dos pods se crean al mismo tiempo, pero eso se puede cambiar para que se creen o inicien en una secuencia.

Inicialmente, el contenedor de la base de datos en el pod de postgres está vacío y debe inicializarse. El proceso inicial pasa por el módulo de la app y, por lo tanto, también debe estar en funcionamiento. Una vez que se siembra postgres , la app aún no está al tanto de estos nuevos datos y debe reiniciarse. Esta es una falla en la app en sí, sobre la que tengo poco control.

En este momento, el proceso es:

 kubectl create -f pods.yaml # creates `app` and `postgres` pods kubectl exec app -- bash -c "<seed command>" kubectl delete pod app sleep 45 # takes a while for `app` to terminate kubectl create -f pods.yaml # Ignore the "postgres pod and service already exist" error

¿Hay una mejor manera de coordinar automáticamente un reinicio de la app una vez que postgres alcanza un estado inicial?

Tal vez hay algún conjunto de aspectos/características de Kubernetes que me falta por completo y que ayuda con tal circunstancia...

over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Puede usar una "prueba de preparación" en el pod de postgresql que no informará que el contenedor está listo antes de que se importen los datos (por ejemplo, consultar la base de datos o la tabla que importa). El contenedor de su aplicación puede consultar el estado de preparación del módulo de base de datos para reiniciarse automáticamente una vez que informe que está listo. La sonda de preparación puede ser un script que realiza la importación. Aquí hay un ejemplo (debe reemplazar el comando "MOSTRAR BASES DE DATOS" con lo que corresponda en su caso):

 spec: containers: - name: mysql image: mysql:latest ports: - containerPort: 3306 name: mysql readinessProbe: exec: command: - /path-in-container/readiness-probe.sh initialDelaySeconds: 15 timeoutSeconds: 5

preparación-sonda.sh:

 #!/bin/bash MYSQL_USER="readinessProbe" MYSQL_PASS="readinessProbe" MYSQL_HOST="127.0.0.1" mysql -u${MYSQL_USER} -p${MYSQL_PASS} -h${MYSQL_HOST} -e"SHOW DATABASES;" if [ $? -ne 0 ]; then exit 1 else exit 0 fi

Para leer más sobre el tema, consulte los documentos de k8s:

sondas de preparación

chequeo de salud

over 4 years ago · Santiago Trujillo Relatório

0

Si la aplicación no necesita ejecutarse durante el proceso de inicialización y puede hacer que el proceso de inicialización sea idempotente, los contenedores init pueden ayudarlo.

El es un buen ejemplo disponible.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda