Как мне обновить образ и команду развертывания kubernetes?

#deployment #kubernetes #kubectl

#развертывание #kubernetes #kubectl

Вопрос:

Я вижу, что могу использовать команду «kubectl set image» для обновления контейнера, используемого в развертывании, например, так:

 kubectl set image deployment/myapp myapp=repo.mycompany.com/myapp/ui:beta.119
  

Но в некоторых ситуациях я также хотел бы использовать другую команду запуска. Есть ли способ обновить как образ, так и команду, используемые для контейнера?

Комментарии:

1. Вы можете легко сделать kubectl edit , который откроет yaml в редакторе. При сохранении файла, в котором применяются изменения

2. Спасибо, но я не имею в виду вручную. Мне нужна какая-нибудь команда, которую я могу запустить из Bamboo.

Ответ №1:

Для этого вы могли бы использовать kubectl patch . Запустите kubectl patch --help , чтобы получить документы, но, насколько я могу судить, что-то вроде этого должно это сделать:

 $ kubectl patch deployment <your-deployment> -p '
spec:
  template:
    spec:
      containers:
        - name: <container-name>
          command: ["new", "command"]
' 
  

Комментарии:

1. В этом примере я использовал нотацию yaml, чтобы сделать ее более читаемой, но многострочные команды не так уж хороши, когда дело доходит до программного подхода. Конечно, вы можете использовать json, если не хотите