Перевыпуск сертификатов кластера k0s при истечении срока действия
Проблема
Невозможно подключить контроллеры или рабочие узлы, перенести поды с одного рабочего узла на другой.
В журналах сервисов k0scontroller и k0sworker появляются множественные записи со следующей подстрокой:
x509: certificate has expired or is not yet valid
Причина
Срок действия служебных сертификатов кластера при создании составляет 1 год. Используемый в отказоустойчивой конфигурации KUMA кластер k0s обеспечивает автоматическую ротацию всех необходимых ему служебных сертификатов, но ротация производится только при запуске сервиса k0scontroller. Если службы k0scontroller на контроллерах кластера работают без перезапуска больше 1 года, то служебные сертификаты становятся недействительными.
Способ исправления
Чтобы исправить ошибку, поочередно перезапустите сервисы k0scontroller с правами root на каждом контроллере кластера:
systemctl restart k0scontroller
Сертификаты будут перевыпущены.
Чтобы проверить сроки действия сертификатов на контроллерах, выполните следующие команды с правами root:
find /var/lib/k0s/pki/ -type f -name "*.crt" -print|egrep -v 'ca.crt$'|xargs -L 1 -t -i bash -c 'openssl x509 -noout -text -in {}|grep After'
find /var/lib/k0s/pki/etcd -type f -name "*.crt" -print|egrep -v 'ca.crt$'|xargs -L 1 -t -i bash -c 'openssl x509 -noout -text -in {}|grep After'
Команды выведут названия файлов сертификатов и сроки их действия.