# kubeadm upgrade

LLMS index: [llms.txt](/llms.txt)

---

<!-- overview -->

`kubeadm upgrade` — це зручна команда, яка обгортає складну логіку оновлення однією командою, з підтримкою як планування оновлення, так і його фактичного виконання.

<!-- body -->

## Інструкція kubeadm upgrade {#kubeadm-upgrade-guidance}

Кроки для виконання оновлення за допомогою kubeadm викладені в [цьому документі](/docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade/). Для старіших версій kubeadm, будь ласка, зверніться до старих наборів документації на сайті Kubernetes.

Ви можете використовувати `kubeadm upgrade diff` для перегляду змін, які будуть застосовані до маніфестів статичних Pod.

У Kubernetes версії v1.15.0 і пізніше, `kubeadm upgrade apply` та `kubeadm upgrade node` також автоматично оновлять сертифікати, керовані kubeadm на цьому вузлі, включаючи ті, що зберігаються у файлах kubeconfig. Щоб відмовитися від цього, можна передати прапорець `--certificate-renewal=false`. Для отримання додаткової інформації про оновлення сертифікатів дивіться [документацію з управління сертифікатами](/docs/tasks/administer-cluster/kubeadm/kubeadm-certs).


<div class="alert alert-info" role="note"><h4 class="alert-heading">Примітка:</h4>Команди <code>kubeadm upgrade apply</code> та <code>kubeadm upgrade plan</code> мають застарілий прапорець <code>--config</code>, який дозволяє переналаштувати кластер під час планування або оновлення конкретного вузла панелі управління. Будь ласка, зверніть увагу, що робочий процес оновлення не був розроблений для цього сценарію, і можуть бути повідомлення про несподівані результати.</div>


## kubeadm upgrade plan {#cmd-upgrade-plan}


	<h3 id="synopsis">Опис<a class="td-heading-self-link" href="#synopsis" aria-label="Heading self-link"></a></h3>
<p>Перевіряє, до яких версій можна оновитися, і перевіряє, чи можна оновити ваш поточний кластер. Ця команда може бути виконана лише на вузлах панелі управління, де існує файл kubeconfig &quot;admin.conf&quot;. Щоб пропустити перевірку Інтернету, вкажіть необовʼязковий параметр [version].</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl">kubeadm upgrade plan <span class="o">[</span>version<span class="o">]</span> <span class="o">[</span>flags<span class="o">]</span>
</span></span></code></pre></div><h3 id="options">Параметри<a class="td-heading-self-link" href="#options" aria-label="Heading self-link"></a></h3>
<table style="width: 100%; table-layout: fixed;">
    <colgroup>
        <col span="1" style="width: 10px;" />
        <col span="1" />
    </colgroup>
    <tbody>
        <tr>
            <td colspan="2">--allow-experimental-upgrades</td>
        </tr>
        <tr>
            <td></td>
            <td style="line-height: 130%; word-wrap: break-word;"><p>Показати нестабільні версії Kubernetes як альтернативу для оновлення і дозволити оновлення до альфа/бета/кандидатів на випуск версій Kubernetes.</p></td>
        </tr>
        <tr>
        <td colspan="2">--allow-missing-template-keys&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Типово: true</td>
        </tr>
        <tr>
            <td></td>
            <td style="line-height: 130%; word-wrap: break-word;"><p>Якщо true, ігнорувати будь-які помилки в шаблонах, коли поле або ключ map відсутній у шаблоні. Застосовується лише до форматів виведення golang та jsonpath.</p></td>
        </tr>
        <tr>
        <td colspan="2">--allow-release-candidate-upgrades</td>
        </tr>
        <tr>
            <td></td>
            <td style="line-height: 130%; word-wrap: break-word;"><p>Показати версії кандидатів на випуск Kubernetes як альтернативу для оновлення і дозволити оновлення до версій кандидатів на випуск Kubernetes.</p></td>
        </tr>
        <tr>
        <td colspan="2">--config string</td>
        </tr>
        <tr>
            <td></td>
            <td style="line-height: 130%; word-wrap: break-word;"><p>Шлях до файлу конфігурації kubeadm.</p></td>
        </tr>
        <tr>
        <td colspan="2">--etcd-upgrade&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Типово: true</td>
        </tr>
        <tr>
            <td></td><td style="line-height: 130%; word-wrap: break-word;"><p>Виконує оновлення etcd.</p></td>
        </tr>
        <tr>
        <td colspan="2">-h, --help</td>
        </tr>
        <tr>
            <td></td>
            <td style="line-height: 130%; word-wrap: break-word;"><p>довідка plan</p></td>
        </tr>
        <tr>
        <td colspan="2">--ignore-preflight-errors strings</td>
        </tr>
        <tr>
            <td></td>
            <td style="line-height: 130%; word-wrap: break-word;"><p>Список перевірок, помилки яких будуть показані як попередження. Приклад: 'IsPrivilegedUser,Swap'. Значення 'all' ігнорує помилки з усіх перевірок.</p></td>
        </tr>
        <tr>
        <td colspan="2">--kubeconfig string&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Типово: "/etc/kubernetes/admin.conf"</td>
        </tr>
        <tr>
            <td></td>
            <td style="line-height: 130%; word-wrap: break-word;"><p>Файл kubeconfig, який буде використовуватися при зверненні до кластера. Якщо прапорець не заданий, буде проведено пошук файлу kubeconfig в стандартнх місцях.</p></td>
        </tr>
        <td colspan="2">-o, --output string&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Типово: "text"</td>
        </tr>
        <tr>
            <td></td>
            <td style="line-height: 130%; word-wrap: break-word;"><p>Формат виводу. Один із: text|json|yaml|kyaml|go-template|go-template-file|template|templatefile|jsonpath|jsonpath-as-json|jsonpath-file.</p></td>
        </tr>
        <tr>
        <td colspan="2">--print-config</td>
        </tr>
        <tr>
            <td></td>
            <td style="line-height: 130%; word-wrap: break-word;"><p>Вказує, чи потрібно надрукувати файл конфігурації, який буде використаний під час оновлення.</p></td>
        </tr>
        <tr>
        <td colspan="2">--show-managed-fields</td>
        </tr>
        <tr>
            <td></td>
            <td style="line-height: 130%; word-wrap: break-word;"><p>Якщо true, зберігати managedFields під час виводу обʼєктів у форматі JSON або YAML.</p></td>
        </tr>
    </tbody>
</table>
<h3 id="options-inherited-from-parent-commands">Параметри успадковані від батьківських команд<a class="td-heading-self-link" href="#options-inherited-from-parent-commands" aria-label="Heading self-link"></a></h3>
<table style="width: 100%; table-layout: fixed;">
    <colgroup>
        <col span="1" style="width: 10px;" />
        <col span="1" />
    </colgroup>
    <tbody>
        <tr>
            <td colspan="2">--rootfs string</td>
        </tr>
        <tr>
            <td></td>
            <td style="line-height: 130%; word-wrap: break-word;"><p>Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях</p></td>
        </tr>
    </tbody>
</table>


## kubeadm upgrade apply  {#cmd-upgrade-apply}


	<h3 id="synopsis">Опис<a class="td-heading-self-link" href="#synopsis" aria-label="Heading self-link"></a></h3>
<p>Оновлює кластер Kubernetes до вказаної версії.</p>
<p>Команда &quot;apply [version]&quot; виконує наступні етапи:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">preflight        Виконання перевірок перед запуском
</span></span><span class="line"><span class="cl">control-plane    Оновлення панелі управління
</span></span><span class="line"><span class="cl">upload-config    Завантаження конфігурації kubeadm та kubelet у ConfigMapі
</span></span><span class="line"><span class="cl">  /kubeadm         Завантаження конфігурації кластера kubeadm у ConfigMap
</span></span><span class="line"><span class="cl">  /kubelet         Завантаження конфігурації компоненту kubelet у ConfigMap
</span></span><span class="line"><span class="cl">kubelet-config   Оновлення конфігурації kubelet для цього вузла
</span></span><span class="line"><span class="cl">bootstrap-token  Налаштування токену bootstrap та правил cluster-info RBAC
</span></span><span class="line"><span class="cl">addon            Оновлення типових надбудов kubeadm
</span></span><span class="line"><span class="cl">  /coredns         Оновлення надбудови CoreDNS
</span></span><span class="line"><span class="cl">  /kube-proxy      Оновлення надбудови kube-proxy
</span></span><span class="line"><span class="cl">post-upgrade     Запуск завдань після оновлення
</span></span></code></pre></div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl">kubeadm upgrade apply <span class="o">[</span>version<span class="o">]</span>
</span></span></code></pre></div><h3 id="options">Параметри<a class="td-heading-self-link" href="#options" aria-label="Heading self-link"></a></h3>
<table style="width: 100%; table-layout: fixed;">
    <colgroup>
        <col span="1" style="width: 10px;" />
        <col span="1" />
    </colgroup>
    <tbody>
        <tr>
            <td colspan="2">--allow-experimental-upgrades</td>
        </tr>
        <tr>
            <td></td>
            <td style="line-height: 130%; word-wrap: break-word;"><p>Показує нестабільні версії Kubernetes як альтернативу для оновлення і дозволяє оновлювати до альфа/бета/версій кандидатів Kubernetes.</p></td>
        </tr>
        <tr>
            <td colspan="2">--allow-release-candidate-upgrades</td>
        </tr>
        <tr>
            <td></td>
            <td style="line-height: 130%; word-wrap: break-word;"><p>Показує версії кандидатів на випуск Kubernetes як альтернативу для оновлення і дозволяє оновлювати до версій кандидатів на випуск Kubernetes.</p></td>
        </tr>
        <tr>
            <td colspan="2">--certificate-renewal&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Типово: true</td>
        </tr>
        <tr>
            <td></td>
            <td style="line-height: 130%; word-wrap: break-word;"><p>Виконує оновлення сертифікатів, які використовуються компонентами під час оновлення.</p></td>
        </tr>
        <tr>
            <td colspan="2">--config string</td>
        </tr>
        <tr>
            <td></td>
            <td style="line-height: 130%; word-wrap: break-word;"><p>Шлях до файлу конфігурації kubeadm.</p></td>
        </tr>
        <tr>
            <td colspan="2">--dry-run</td>
        </tr>
        <tr>
            <td></td>
            <td style="line-height: 130%; word-wrap: break-word;"><p>Не змінює жодного стану, просто показує дії, які будуть виконані.</p></td>
        </tr>
        <tr>
            <td colspan="2">--etcd-upgrade&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Типово: true</td>
        </tr>
        <tr>
            <td></td>
            <td style="line-height: 130%; word-wrap: break-word;"><p>Виконує оновлення etcd.</p></td>
        </tr>
        <tr>
            <td colspan="2">-f, --force</td>
        </tr>
        <tr>
            <td></td>
            <td style="line-height: 130%; word-wrap: break-word;"><p>Примусове оновлення, навіть якщо деякі вимоги можуть бути не виконані. Це також передбачає неітерактивний режим.</p></td>
        </tr>
        <tr>
            <td colspan="2">-h, --help</td>
        </tr>
        <tr>
            <td></td>
            <td style="line-height: 130%; word-wrap: break-word;"><p>довідка apply</p></td>
        </tr>
        <tr>
            <td colspan="2">--ignore-preflight-errors strings</td>
        </tr>
        <tr>
            <td></td>
            <td style="line-height: 130%; word-wrap: break-word;"><p>Список перевірок, помилки яких будуть показані як попередження. Приклад: 'IsPrivilegedUser,Swap'. Значення 'all' ігнорує помилки з усіх перевірок.</p></td>
        </tr>
        <tr>
            <td colspan="2">--kubeconfig string&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Типово: "/etc/kubernetes/admin.conf"</td>
        </tr>
        <tr>
            <td></td>
            <td style="line-height: 130%; word-wrap: break-word;"><p>Файл kubeconfig, який буде використовуватися при зверненні до кластера. Якщо прапорець не заданий, буде проведено пошук файлу kubeconfig в стандартних місцях.</p></td>
        </tr>
        <tr>
            <td colspan="2">--patches string</td>
        </tr>
        <tr>
            <td></td>
            <td style="line-height: 130%; word-wrap: break-word;"><p>Шлях до теки, що містить файли з іменами &quot;target[suffix][+patchtype].extension&quot;. Наприклад, &quot;kube-apiserver0+merge.yaml&quot; або просто &quot;etcd.json&quot;. &quot;target&quot; може бути одним із &quot;kube-apiserver&quot;, &quot;kube-controller-manager&quot;, &quot;kube-scheduler&quot;, &quot;etcd&quot;, &quot;kubeletconfiguration&quot;, &quot;corednsdeployment&quot;. &quot;patchtype&quot; може бути одним із &quot;strategic&quot;, &quot;merge&quot; або &quot;json&quot;, і вони відповідають форматам патчів, які підтримуються kubectl. Стандартно &quot;patchtype&quot; - &quot;strategic&quot;. &quot;extension&quot; повинен бути або &quot;json&quot;, або &quot;yaml&quot;. &quot;suffix&quot; є необовʼязковим рядком, який може використовуватися для визначення порядку застосування патчів за алфавітом.</p></td>
        </tr>
        <tr>
            <td colspan="2">--print-config</td>
        </tr>
        <tr>
            <td></td>
            <td style="line-height: 130%; word-wrap: break-word;"><p>Вказує, чи потрібно надрукувати файл конфігурації, який буде використаний під час оновлення.</p></td>
        </tr>
        <tr>
            <td colspan="2">--skip-phases strings</td>
        </tr>
        <tr>
            <td></td>
            <td style="line-height: 130%; word-wrap: break-word;"><p>Список етапів, які потрібно оминути</p></td>
        </tr>
        <tr>
            <td colspan="2">-y, --yes</td>
        </tr>
        <tr>
            <td></td>
            <td style="line-height: 130%; word-wrap: break-word;"><p>Виконати оновлення і не запитувати підтвердження (режим без взаємодії).</p></td>
        </tr>
    </tbody>
</table>
<h3 id="options-inherited-from-parent-commands">Параметри успадковані від батьківських команд<a class="td-heading-self-link" href="#options-inherited-from-parent-commands" aria-label="Heading self-link"></a></h3>
<table style="width: 100%; table-layout: fixed;">
    <colgroup>
        <col span="1" style="width: 10px;" />
        <col span="1" />
    </colgroup>
    <tbody>
        <tr>
            <td colspan="2">--rootfs string</td>
        </tr>
        <tr>
            <td></td>
            <td style="line-height: 130%; word-wrap: break-word;"><p>Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях</p></td>
        </tr>
    </tbody>
</table>


## kubeadm upgrade diff {#cmd-upgrade-diff}


	<h3 id="synopsis">Опис<a class="td-heading-self-link" href="#synopsis" aria-label="Heading self-link"></a></h3>
<p>Показує які відмінності можуть бути застосовані до наявних маніфестів статичних Pod. Дивіться також: <code>kubeadm upgrade apply --dry-run</code></p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl">kubeadm upgrade diff <span class="o">[</span>version<span class="o">]</span> <span class="o">[</span>flags<span class="o">]</span>
</span></span></code></pre></div><h3 id="options">Параметри<a class="td-heading-self-link" href="#options" aria-label="Heading self-link"></a></h3>
<table style="width: 100%; table-layout: fixed;">
    <colgroup>
        <col span="1" style="width: 10px;" />
        <col span="1" />
    </colgroup>
    <tbody>
        <tr>
            <td colspan="2">--config string</td>
        </tr>
        <tr>
            <td></td>
            <td style="line-height: 130%; word-wrap: break-word;"><p>Шлях до файлу конфігурації kubeadm.</p></td>
        </tr>
        <tr>
            <td colspan="2">-c, --context-lines int&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Типово: 3</td>
        </tr>
        <tr>
            <td></td>
            <td style="line-height: 130%; word-wrap: break-word;"><p>Скільки рядків контексту в виведенні diff.</p></td>
        </tr>
        <tr>
            <td colspan="2">-h, --help</td>
        </tr>
        <tr>
            <td></td>
            <td style="line-height: 130%; word-wrap: break-word;"><p>довідка diff</p></td>
        </tr>
        <tr>
            <td colspan="2">--kubeconfig string&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Типово: "/etc/kubernetes/admin.conf"</td>
        </tr>
        <tr>
            <td></td>
            <td style="line-height: 130%; word-wrap: break-word;"><p>Файл kubeconfig, який буде використовуватися при зверненні до кластера. Якщо прапорець не заданий, буде проведено пошук файлу kubeconfig в стандартних місцях.</p></td>
        </tr>
    </tbody>
</table>
<h3 id="options-inherited-from-parent-commands">Параметри успадковані від батьківських команд<a class="td-heading-self-link" href="#options-inherited-from-parent-commands" aria-label="Heading self-link"></a></h3>
<table style="width: 100%; table-layout: fixed;">
    <colgroup>
        <col span="1" style="width: 10px;" />
        <col span="1" />
    </colgroup>
    <tbody>
        <tr>
            <td colspan="2">--rootfs string</td>
        </tr>
        <tr>
            <td></td>
            <td style="line-height: 130%; word-wrap: break-word;"><p>Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях</p></td>
        </tr>
    </tbody>
</table>


## kubeadm upgrade node {#cmd-upgrade-node}


	<h3 id="synopsis">Опис<a class="td-heading-self-link" href="#synopsis" aria-label="Heading self-link"></a></h3>
<p>Команда upgrade для вузлів в кластері.</p>
<p>Команда &quot;node&quot; виконує наступні фази:</p>
<pre tabindex="0"><code class="language-none" data-lang="none">preflight       Виконання попереднії перевірок оновлення вузла
control-plane   Оновлення екземпляру панелі управління, розгорнутий на цьому вузлі, якщо такий є
kubelet-config  Оновлення конфігурацію kubelet для цього вузла
addon           Оновлення стандартних надбудов kubeadm
  /coredns        Оновлення надбудови CoreDNS
  /kube-proxy     Оновлення надбудови kube-proxy
post-upgrade    Запуск завдань після оновлення
</code></pre><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl">kubeadm upgrade node <span class="o">[</span>flags<span class="o">]</span>
</span></span></code></pre></div><h3 id="options">Параметри<a class="td-heading-self-link" href="#options" aria-label="Heading self-link"></a></h3>
<table style="width: 100%; table-layout: fixed;">
    <colgroup>
        <col span="1" style="width: 10px;" />
        <col span="1" />
    </colgroup>
    <tbody>
    <tr>
        <td colspan="2">--certificate-renewal&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Типово: true</td>
    </tr>
    <tr>
        <td></td>
        <td style="line-height: 130%; word-wrap: break-word;"><p>Виконати оновлення сертифікатів, використовуваних компонентами, які змінюються під час оновлення.</p></td>
    </tr>
    <tr>
        <td colspan="2">--config string</td>
    </tr>
    <tr>
        <td></td><td style="line-height: 130%; word-wrap: break-word;"><p>Шлях до файлу конфігурації kubeadm.</p></td>
    </tr>
    <tr>
        <td colspan="2">--dry-run</td>
    </tr>
    <tr>
        <td></td><td style="line-height: 130%; word-wrap: break-word;"><p>Не змінює жодного стану, просто показує дії, які будуть виконані.</p></td>
    </tr>
    <tr>
        <td colspan="2">--etcd-upgrade&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Типово: true</td>
    </tr>
    <tr>
        <td></td><td style="line-height: 130%; word-wrap: break-word;"><p>Виконати оновлення etcd.</p></td>
    </tr>
    <tr>
        <td colspan="2">-h, --help</td>
    </tr>
    <tr>
        <td></td><td style="line-height: 130%; word-wrap: break-word;"><p>довідка node</p></td>
    </tr>
    <tr>
        <td colspan="2">--ignore-preflight-errors strings</td>
    </tr>
    <tr>
        <td></td><td style="line-height: 130%; word-wrap: break-word;"><p>Список перевірок, помилки в яких будуть відображені як попередження. Приклад: 'IsPrivilegedUser,Swap'. Значення 'all' ігнорує помилки з усіх перевірок.</p></td>
    </tr>
    <tr>
        <td colspan="2">--kubeconfig string&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Типово: "/etc/kubernetes/admin.conf"</td>
    </tr>
    <tr>
        <td></td><td style="line-height: 130%; word-wrap: break-word;"><p>Файл kubeconfig, який буде використовуватися при зверненні до кластера. Якщо прапорець не заданий, буде проведено пошук файлу kubeconfig в стандартних місцях.</p></td>
    </tr>
    <tr>
        <td colspan="2">--patches string</td>
    </tr>
    <tr>
        <td></td><td style="line-height: 130%; word-wrap: break-word;"><p>Шлях до теки, що містить файли з іменами &quot;target[suffix][+patchtype].extension&quot;. Наприклад, &quot;kube-apiserver0+merge.yaml&quot; або просто &quot;etcd.json&quot;. &quot;target&quot; може бути одним із &quot;kube-apiserver&quot;, &quot;kube-controller-manager&quot;, &quot;kube-scheduler&quot;, &quot;etcd&quot;, &quot;kubeletconfiguration&quot;, &quot;corednsdeployment&quot;. &quot;patchtype&quot; може бути одним із &quot;strategic&quot;, &quot;merge&quot; або &quot;json&quot;, і вони відповідають форматам патчів, що підтримуються kubectl. Стандартно &quot;patchtype&quot; - &quot;strategic&quot;. &quot;extension&quot; повинен бути або &quot;json&quot;, або &quot;yaml&quot;. &quot;suffix&quot; - це необовʼязковий рядок, який може використовуватися для визначення порядку застосування патчів за алфавітном.</p></td>
    </tr>
    <tr>
        <td colspan="2">--skip-phases strings</td>
    </tr>
    <tr>
        <td></td><td style="line-height: 130%; word-wrap: break-word;"><p>Список фаз, які слід пропустити.</p></td>
    </tr>
</tbody>
</table>
<h3 id="options-inherited-from-parent-commands">Параметри успадковані від батьківських команд<a class="td-heading-self-link" href="#options-inherited-from-parent-commands" aria-label="Heading self-link"></a></h3>
<table style="width: 100%; table-layout: fixed;">
    <colgroup>
        <col span="1" style="width: 10px;" />
        <col span="1" />
    </colgroup>
    <tbody>
        <tr>
            <td colspan="2">--rootfs string</td>
        </tr>
        <tr>
            <td></td>
            <td style="line-height: 130%; word-wrap: break-word;"><p>Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях</p></td>
        </tr>
    </tbody>
</table>


## Що далі

* [kubeadm config](/docs/reference/setup-tools/kubeadm/kubeadm-config/) якщо ви ініціалізували свій кластер за допомогою kubeadm версії 1.7.x або нижче, щоб налаштувати ваш кластер для оновлення за допомогою `kubeadm upgrade`.
