Linux обновления · 5 min read · Nov 27, 2025
Как настроить автоматические обновления ядра без перезагрузки на сервере Linux

Обновление ядра на сервере Linux кажется простым. Это можно сделать с помощью общих инструментов, таких как dpkg, apt-get или kexec. Однако эти методы становятся сложными, если организация управляет сотнями или тысячами серверов. Множество серверов означает множество дистрибутивов для обновления, каждый из которых требует личного внимания со стороны системного администратора или инженера.
Эти методы ручного обновления также рискованны, так как требуют перезагрузок. Перезагрузки связаны с простоями серверов, что всегда проблематично, поэтому они обычно выполняются в циклах перезагрузки. Поскольку ручное обновление выполняется во время этих циклов, это предоставляет хакерам «временное окно», в течение которого они могут атаковать серверную инфраструктуру.
Для организаций, которые управляют более чем несколькими серверами, живое обновление является лучшим вариантом. Это автоматизированный способ обновления ядра Linux, пока сервер работает, что делает его более эффективным и безопасным, чем ручные методы. Давайте узнаем, как настроить четыре самых популярных системы живого обновления от Canonical, Oracle, Red Hat и CloudLinux.
Что такое живое обновление и как оно работает
В конечном итоге существует два метода живого обновления для ядер и библиотек: временный и постоянный. Временный метод применяет патч без перезагрузки, но на самом деле требует перезагрузки сервера позже. Постоянное живое обновление не требует перезагрузки.
Временный метод
Временный метод (или «стековое» обновление) выполняется с помощью программного обеспечения для управления пакетами (например, плагина YUM). Патчи доставляются в репозитории и применяются в соответствии с рабочими процессами обновления, указанными пользователем.
«Стековое» обновление равно перезагрузкам серверов и простоям, даже если вам может не понадобиться перезагрузка сразу после установки патча, но из-за архитектуры этого типа живых обновлений, патчи безопасности накапливаются друг на друга со временем, потенциально уменьшая производительность и стабильность. Единственным решением этой проблемы является перезагрузка сервера для загрузки свежего ядра в память.
Поставщики, предоставляющие временное обновление:
- Canonical Livepatch
- kGraph
- Amazon Linux 2 kernel live patching
Постоянный метод
В случае постоянного метода сервер хранит последние патчи, и эти патчи называются «монолитными», так как они содержат предыдущие патчи. Для обновления серверов фоновая программа-агент проверяет сервер патчей на наличие патчей. Если на сервере патч для ядра, агент вызывает модуль обновления и применяет патч.
Постоянное обновление имеет и другие важные преимущества:
- Серверы, использующие постоянный метод, остаются работающими даже с аппаратными уязвимостями, которые обычно требуют перезагрузки для обновления, такими как Spectre, Meltdown и Zombieload;
- Это снижает время и усилия, необходимые для администрирования серверов, за счет полной автоматизации процесса обновления;
- Это позволяет серверам оставаться работающими, часто в течение многих лет.
Метод постоянного обновления обычно включает в себя сборы поставщика, при этом большинство поставщиков предлагают бесплатные пробные периоды:
- Ksplice
- Kpatch
- KernelCare
Настройка автоматических обновлений ядра без перезагрузки на сервере Linux
Ниже мы покажем вам, как настроить обновления ядра без перезагрузки на сервере Linux, используя службы Livepatch, Kpatch, Ksplice и KernelCare.
Примечание: Перед тем как начать выполнять эти инструкции, убедитесь, что ваша система обновлена и сделано резервное копирование.
1. Настройка Canonical Livepatch
Служба Canonical Livepatch может быть настроена как во время, так и после установки. Она будет устанавливать патчи безопасности ядра только когда вы запускаете команду apt-get upgrade (следовательно, полуавтоматически).
Плюсы: Просто. Полуавтоматически. Перезагрузка не требуется.
Минусы: Дорого для 4 или более хостов (но бесплатно для до 3 хостов для всех и до 50 машин, если вы являетесь членом сообщества Ubuntu). Нет отката патчей.
Сборы, за сервер: Ежемесячно (не доступно), Ежегодно (225 долларов).
Чтобы установить Livepatch на Ubuntu 20.04 LTS Server (также работает на версиях 16.04 LTS, 14.04 LTS и 18.04 LTS), откройте терминал и выполните эти две команды:
sudo snap install canonical-livepatch
sudo canonical-livepatch enable <ваш ключ>Чтобы отменить регистрацию сервера, используйте эту команду:
sudo canonical-livepatch disable <ваш ключ>Чтобы проверить статус службы, используйте эту команду:
sudo canonical-livepatch status --verbose2. Настройка Oracle Ksplice
Если вы не запускаете экземпляр Ksplice внутри Oracle Cloud, вам понадобится ключ доступа для его установки. Его можно получить, войдя в Unbreakable Linux Network и следуя инструкциям по регистрации вашей системы для Ksplice.
Чтобы установить Ksplice, ваша система должна иметь доступ к интернету. Если вы используете прокси, установите прокси в вашей оболочке:
# export http_proxy=http://proxy.example.com:port# export https_proxy=http://proxy.example.com:portПрокси должен поддерживать установление HTTPS-соединений, а строка прокси должна быть в следующем формате:
[protocol://][username:password@][:port] - protocol — это протокол для подключения к прокси (http или https)
- username и password — это данные для аутентификации, необходимые для использования вашего прокси (если есть).
- host и port — это имя хоста/IP-адрес и номер порта, используемые для подключения к прокси
Выполните следующие инструкции от имени root, заменив YOUR_ACCESS_KEY на ключ доступа, который вы получили на предыдущем шаге.
Внутри Oracle Cloud
Чтобы установить Ksplice внутри Oracle Cloud, чтобы обновления ядра устанавливались автоматически, выполните эти команды:
# wget -N https://ksplice.oracle.com/uptrack/install-uptrack-oc# sh install-uptrack-oc --autoinstallЧтобы применить доступные обновления к Uptrack, приложению, которое автоматически устанавливает обновления ядра, выполните эту команду:
# uptrack-upgrade -yЕсли вы уже установили Uptrack, вы можете включить его, установив autoinstall = yes в /etc/uptrack/uptrack.conf после установки Ksplice.
Чтобы установить Ksplice так, чтобы обновления применялись вручную, выполните эти команды:
# wget -N https://ksplice.oracle.com/uptrack/install-uptrack-oc# sh install-uptrack-oc****Снаружи Oracle Cloud
Чтобы установить Ksplice снаружи Oracle Cloud, чтобы обновления ядра устанавливались автоматически, выполните эти команды:
# wget -N https://ksplice.oracle.com/uptrack/install-uptrack# sh install-uptrack YOUR_ACCESS_KEY --autoinstallЧтобы установить Ksplice так, чтобы обновления применялись вручную, выполните эти команды:
# wget -N https://ksplice.oracle.com/uptrack/install-uptrack# sh install-uptrack YOUR_ACCESS_KEYПримечание: Если вы устанавливаете Ksplice на сервер Debian или Ubuntu, вам может сначала понадобиться установить пакет ca-certificates с помощью apt-get install ca-certificates. Без этого пакета вы увидите ошибку «ошибка проверки сертификата».
4. Настройка Red Hat Kpatch
Установка Kpatch проста и понятна:
Запустите команду обновления, чтобы обновить репозитории пакетов и получить последнюю информацию о пакетах:
sudo apt-get update -y Запустите команду установки с флагом -y, чтобы быстро установить пакеты и зависимости:
sudo apt-get install -y patch5. Настройка CloudLinux KernelCare
Чтобы узнать, поддерживается ли запущенное ядро KernelCare, выполните одну из этих команд:
curl -s -L https://kernelcare.com/checker | pythonили
wget -qq -O – https://kernelcare.com/checker | pythonЧтобы установить KernelCare, выполните одну из этих команд:
curl -s -L https://kernelcare.com/installer | bashили:
wget -qq -O - https://kernelcare.com/installer | bashЕсли вы используете лицензию на основе IP, ничего больше не требуется. Если вы используете лицензию на основе ключа, выполните эту команду:
$ /usr/bin/kcarectl --register KEYKEY — это строка кода регистрации, которую вы получили, когда купили KernelCare или подписались на бесплатный пробный период. Вы можете получить ключ здесь.
Чтобы отменить регистрацию сервера, выполните:
sudo kcarectl --unregisterЧтобы проверить статус службы, выполните:
sudo kcarectl --infoKernelCare автоматически проверяет наличие новых патчей каждые 4 часа. Чтобы выполнить обновления вручную вместо автоматических, выполните:
/usr/bin/kcarectl –updateЗаключение
Эти инструкции по установке нескольких решений для живого обновления перечисляют все шаги, необходимые для установки одного из них в вашей среде. Как только это будет сделано, вы сможете наслаждаться преимуществами технологии живого обновления: возможностью обновлять ядро, не останавливая сервер, без последующих перезагрузок в течение месяцев или даже лет.
Get new posts in your inbox
No spam. Unsubscribe anytime.