вам нужно добавить класс [System.Serializable]
в PlayerItem
, например:
using System;
[System.Serializable]
public class PlayerItem {
public string playerId;
public string playerLoc;
public string playerNick;
}
Даже в обычном Docker вы никогда не сможете обновить контейнер до более нового изображения, не удаляя и не воссоздавая его. Это также невозможно в Kubernetes: список containers
в спецификации модуля «не может быть добавлен или удален ... не может быть обновлен», что означает, что вы никогда не сможете изменить изображение на существующем модуле .
В Kubernetes лучшая практика - всегда использовать явный тег версии (никогда latest
или что-либо подобное, которое, как ожидается, изменится) и управлять модулями с развертываниями. Когда у вас будет новая сборка, измените спецификацию развертывания, чтобы иметь новый тег. Kubernetes заметит, что новое развертывание отличается от старого, и будет по порядку:
Это приводит к обновлению без простоев.
Запущенный модуль является неизменным, если вы вносите изменение образа в развертывание, оно будет изменяться только при запуске новых контейнеров и удалении старых.
Используйте развертывания для запуска ваших модулей. Запустите следующую команду, чтобы изменить образ:
kubectl set image deployment/DEPLOY_NAME container-name=image_path:version
Развертывание позаботится об уничтожении старых модулей и запуске новых.