Мой кластер падал за последнюю версию K3S. Время обновления.
Введите контроллер обновления системы
Я в основном только инструкции связали здесь Отказ
Он разворачивает контроллер обновления системы в собственное пространство имен, где он пока ничего не будет делать.
Вы должны дать ему несколько планов.
Он будет читать планы в том же пространстве имен и выполнять указанное изображение. Я использовал план, связанный выше. Вместо того, чтобы связывать его в конкретную версию, я установил его на новейший канал.
# Server plan apiVersion: upgrade.cattle.io/v1 kind: Plan metadata: name: server-plan namespace: system-upgrade spec: concurrency: 1 cordon: true nodeSelector: matchExpressions: - key: node-role.kubernetes.io/master operator: In values: - "true" serviceAccountName: system-upgrade upgrade: image: rancher/k3s-upgrade channel: https://update.k3s.io/v1-release/channels/stable --- # Agent plan apiVersion: upgrade.cattle.io/v1 kind: Plan metadata: name: agent-plan namespace: system-upgrade spec: concurrency: 1 cordon: true nodeSelector: matchExpressions: - key: node-role.kubernetes.io/master operator: DoesNotExist prepare: args: - prepare - server-plan image: rancher/k3s-upgrade:v1.17.4-k3s1 serviceAccountName: system-upgrade upgrade: image: rancher/k3s-upgrade channel: https://update.k3s.io/v1-release/channels/stable
Вы заметите, что на самом деле есть 2 планы. Один нанесен на главные узлы и другие рабочие узлы. Это позволяет обновить главный узел к новой версии перед рабочими.
Весь процесс взял на себя 5 минут для моего 3 узла кластера. Я смог Kubectl Получить узлы
периодически и наблюдать за прогрессом.
Оригинал: «https://dev.to/kasuboski/automated-upgrades-for-k3s-b7o»