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

280
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 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