Обновление драйвера Kubernetes CSI

Мы разрабатываем драйвер CSI для k8s. В настоящее время для обновления драйвера мы удаляем установленные модули операторов, компакт-диски и роли и воссоздаем их из образов новой версии. Какой способ обновления предлагается? Или рекомендуется удалить / установить? Я не смог найти подходящей информации

У нас также есть поддержка установки из OpenShift. Есть ли разница в обновлении с OpenShift?

2 ответа

Вам следует начать с этой документации:

Эта страница описывает разработчикам драйверов CSI, как развернуть их драйвер в кластере Kubernetes.

Особенно:

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

Также вы найдете там всю необходимую информацию с примером.

В вашем вопросе отсутствуют некоторые подробности относительно вашего варианта использования, но я настоятельно рекомендую начать с руководства, которое я вам представил.

Пожалуйста, дайте мне знать, если это поможет.

Драйверы CSI могут различаться, но я считаю, что лучший подход - выполнить последовательное обновление DaemonSet вашего плагина. Это произойдет автоматически, как только вы примените новую конфигурацию DaemonSet, например, новый образ докера. Для получения дополнительной информации см. https://kubernetes.io/docs/tasks/manage-daemon/update-daemon-set/.

Например:

kubectl get -n YOUR-NAMESPACE daemonset YOUR-DAEMONSET --export -o yaml > plugin.yaml
vi plugin.yaml # Update your image tag(s)
kubectl apply -n YOUR-NAMESPACE -f plugin.yaml

Короткий способ обновить только изображение:

kubectl set image ds/YOUR-DAEMONSET-NAME YOUR-CONTAINER-NAME=YOUR-IMAGE-URL:YOUR-TAG -n YOUR-NAMESPACE

Примечание. Я обнаружил, что мне также необходимо перезапустить (убить) модуль с помощью внешнего инициатора. Возможно, есть более элегантный способ справиться с этим, но он работает в крайнем случае.

kubectl delete pod -n YOUR-NAMESPACE YOUR-EXTERNAL-PROVISIONER-POD
Другие вопросы по тегам