Как вытащить новый образ в kubernetes из докера-концентратора, не влияя на работающий модуль?

вам нужно добавить класс [System.Serializable] в PlayerItem, например:

using System;
[System.Serializable]
public class PlayerItem   {
    public string playerId;
    public string playerLoc;
    public string playerNick;
}
0
задан rakeshh92 25 March 2019 в 13:24
поделиться

2 ответа

Даже в обычном Docker вы никогда не сможете обновить контейнер до более нового изображения, не удаляя и не воссоздавая его. Это также невозможно в Kubernetes: список containers в спецификации модуля «не может быть добавлен или удален ... не может быть обновлен», что означает, что вы никогда не сможете изменить изображение на существующем модуле .

В Kubernetes лучшая практика - всегда использовать явный тег версии (никогда latest или что-либо подобное, которое, как ожидается, изменится) и управлять модулями с развертываниями. Когда у вас будет новая сборка, измените спецификацию развертывания, чтобы иметь новый тег. Kubernetes заметит, что новое развертывание отличается от старого, и будет по порядку:

  1. запустить новый модуль с новым образом;
  2. дождаться проверки его работоспособности, чтобы проходить; и
  3. Удалить старый Pod.

Это приводит к обновлению без простоев.

0
ответ дан David Maze 25 March 2019 в 13:24
поделиться

Запущенный модуль является неизменным, если вы вносите изменение образа в развертывание, оно будет изменяться только при запуске новых контейнеров и удалении старых.

Используйте развертывания для запуска ваших модулей. Запустите следующую команду, чтобы изменить образ:

kubectl set image deployment/DEPLOY_NAME container-name=image_path:version

Развертывание позаботится об уничтожении старых модулей и запуске новых.

0
ответ дан Leandro Donizetti Soares 25 March 2019 в 13:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: