# Kubelet Checkpoint API

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

---

<div class="feature-state-notice feature-beta" title="Функціональна можливість: ContainerCheckpoint">
              <span class="feature-state-name">СТАН ФУНКЦІОНАЛУ:</span> 
              <code>Kubernetes v1.30 [beta]</code>(стандартно увімкнено)</div>


Контрольна точка контейнера — це функціонал для створення копії контейнера зі станом запущеного контейнера. Після того, як у вас є копія контейнера з його станом, ви можете перенести його на інший компʼютер для налагодження або подібних цілей.

Якщо перемістити дані такої копії контейнера на компʼютер, здатний їх відновити, відновлений контейнер продовжить працювати точно з того самого місця, де він був зупинений. Також можна переглянути збережені дані, за умови, що є відповідні інструменти для цього.

Створення копії контейнера зі станом може мати наслідки для безпеки. Зазвичай така копія містить усі сторінки памʼяті всіх процесів у контейнері. Це означає, що все, що колись було в памʼяті, тепер доступне на локальному диску. Це включає всі приватні дані та можливі ключі, які використовувались для шифрування. Реалізації CRI повинні створювати архів копії зі збереженням стану таким чином, щоб до нього міг мати доступ лише користувач `root`. Важливо памʼятати, що якщо архів копії зі збереженням стану передається в іншу систему, усі сторінки памʼяті будуть доступні власнику архіву копії.

## Операції {#operations}

### `post` створення копії зі збереженням стану вказаного контейнера {#post-checkpoint}

Дайте команду kubelet створити копію зі збереженням стану конкретного контейнера з вказаного Pod.

Для отримання додаткової інформації щодо керування доступом до інтерфейсу контролю kubelet дивіться [довідку з автентифікації/авторизації kubelet](/docs/reference/access-authn-authz/kubelet-authn-authz).

Kubelet запитає контрольну точку у відповідного <a class='glossary-tooltip' title='Протокол для звʼязку між kubelet та локальним середовищем виконання контейнера.' data-bs-toggle='tooltip' data-bs-placement='top' href='/uk/docs/concepts/architecture/cri' target='_blank' aria-label='CRI'>CRI</a>. У запиті до контрольної точки kubelet вкаже імʼя архіву контрольної точки у вигляді `checkpoint-<podFullName>-<containerName>-<timestamp>.tar`, а також попросить зберігати архів контрольних точок у теці `checkpoints` в його кореневій теці (як визначено параметром `--root-dir`). Типово це буде `/var/lib/kubelet/checkpoints`.

Архів копії зі збереженням стану має формат _tar_ і може бути переглянутий за допомогою реалізації [`tar`](https://pubs.opengroup.org/onlinepubs/7908799/xcu/tar.html). Вміст архіву залежить від реалізації CRI (інтерфейс запуску контейнерів на вузлі).

#### HTTP-запит {#post-checkpoint-request}

POST /checkpoint/{namespace}/{pod}/{container}

#### Параметри {#post-checkpoint-params}

- **namespace** (*в шляху*): string, обовʼязково

  <a class='glossary-tooltip' title='Абстракція, що використовується в Kubernetes для ізоляції груп ресурсів в межах одного кластера.' data-bs-toggle='tooltip' data-bs-placement='top' href='/uk/docs/concepts/overview/working-with-objects/namespaces' target='_blank' aria-label='Namespace'>Namespace</a>

- **pod** (*в шляху*): string, обовʼязково

  <a class='glossary-tooltip' title='Pod є групою контейнерів, що запущені у вашому кластері.' data-bs-toggle='tooltip' data-bs-placement='top' href='/uk/docs/concepts/workloads/pods/' target='_blank' aria-label='Pod'>Pod</a>

- **container** (*в шляху*): string, обовʼязково

  <a class='glossary-tooltip' title='Легкий та переносний виконуваний образ, який містить програмне забезпечення та всі його залежності.' data-bs-toggle='tooltip' data-bs-placement='top' href='/uk/docs/concepts/containers/' target='_blank' aria-label='Контейнер'>Контейнер</a>

- **timeout** (*в запиті*): integer

  Тайм-аут у секундах для очікування завершення створення копії зі збереженням стану. Якщо вказано нуль або тайм-аут не вказано, буде використане стандартне значення тайм-ауту для <a class='glossary-tooltip' title='Протокол для звʼязку між kubelet та локальним середовищем виконання контейнера.' data-bs-toggle='tooltip' data-bs-placement='top' href='/uk/docs/concepts/architecture/cri' target='_blank' aria-label='CRI'>CRI</a>. Час створення копії зі збереженням стану залежить безпосередньо від використаної памʼяті контейнера. Чим більше памʼяті використовує контейнер, тим більше часу
  потрібно для створення відповідної копії зі збереженням стану.

#### Відповідь {#post-checkpoint-response}

200: OK

401: Unauthorized

404: Not Found (якщо функціональні можливості `ContainerCheckpoint` відключено)

404: Not Found (якщо вказаний `namespace`, `pod` або `container` не може бути знайдено)

500: Internal Server Error (якщо реалізація CRI стикається з помилкою під час створення копії зі збереженням стану (див. повідомлення про помилку для деталей))

500: Internal Server Error (якщо реалізація CRI не реалізує API створення контейнера (див. повідомлення про помилку для деталей))
