Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

277
Views
Kubernetes: Cómo actualizar el 'comando' de un contenedor de busybox en vivo

Tengo el siguiente manifiesto que creó el pod en ejecución llamado 'prueba'

 apiVersion: v1 kind: Pod metadata: name: hello-world labels: app: blue spec: containers: - name: funskies image: busybox command: ["/bin/sh", "-c", "echo 'Hello World'"]

Quiero actualizar el pod para incluir el comando adicional

 apiVersion: v1 kind: Pod metadata: name: hello-world labels: app: blue spec: containers: restartPolicy: Never - name: funskies image: busybox command: ["/bin/sh", "-c", "echo 'Hello World' > /home/my_user/logging.txt"]

lo que probé

 kubectl edit pod test

que resulto

 # Please edit the object below. Lines beginning with a '#' will be ignored, # and an empty file will abort the edit. If an error occurs while saving this file will be # reopened with the relevant failures. # # pods "test" was not valid: # * spec: Forbidden: pod updates may not change fields other than `spec.containers[*].image`...

Otras cosas que probé:

Se actualizó el manifiesto y luego se ejecutó aplicar - mismo problema

 kubectl apply -f test.yaml

Pregunta: ¿Cuál es la forma correcta de actualizar un pod en ejecución?

over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

No puede modificar la mayoría de las propiedades de un Pod. Por lo general, no desea crear pods directamente; use un controlador de nivel superior como una implementación.

La documentación de Kubernetes para notas de PodSpec (énfasis mío):

containers : Lista de contenedores pertenecientes al pod. Actualmente no se pueden agregar ni eliminar contenedores. Debe haber al menos un contenedor en un Pod. No se puede actualizar.

En todos los casos, pase lo que pase, un contenedor ejecuta un único comando y, si desea cambiar el comando, debe eliminar y volver a crear el contenedor. En Kubernetes, esto siempre significa eliminar y volver a crear el Pod que lo contiene. Por lo general, no debe usar Pods desnudos, pero si lo hace, puede crear un nuevo Pod con el nuevo comando y eliminar el antiguo. La eliminación de pods es extremadamente rutinaria y todo tipo de cosas comunes hacen que suceda (actualización de implementaciones, reducción de escala de HorizontalPodAutoscaler, ...).

Si tiene una implementación en lugar de un pod simple, puede cambiar libremente la template: para los pods que crea. Esto incluye cambiar su command: . Esto dará como resultado que la implementación cree un nuevo pod con el nuevo comando y, una vez que se esté ejecutando, elimine el antiguo pod.

Los tipos de contenedores de un solo comando de muy corta duración que muestra en la pregunta no son necesariamente adecuados para ejecutarse en Kubernetes. Si el pod no se va a seguir ejecutando y atendiendo solicitudes, un trabajo podría ser una mejor opción; pero un trabajo cree que solo se ejecutará una vez, y si cambia la especificación del módulo para un trabajo completo, no creo que inicie un nuevo módulo. Debería crear un nuevo trabajo para este caso.

over 4 years ago · Santiago Trujillo Report

0

No estoy seguro de cuál es el requisito completo.

pero puede ejecutar el pod y actualizar los detalles

 $ kubectl exec <pod-name> -it -n <namespace> -- <command to execute> like, $ kubectl exec pod/hello-world-xxxx-xx -it -- /bin/bash

si tty admite shell, utilice "/bin/sh" para actualizar el contenido o el comando.

La edición del pod en ejecución no retendrá los cambios en el archivo de manifiesto. entonces, en ese caso, debe ejecutar un nuevo pod con los cambios.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!