# Інтерфейс середовища виконання контейнерів (CRI)

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

---

<!-- overview -->

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

Для того, щоб <a class='glossary-tooltip' title='Агент, запущений на кожному вузлі кластера. Забезпечує запуск і роботу контейнерів у Podʼах.' data-bs-toggle='tooltip' data-bs-placement='top' href='/uk/docs/reference/command-line-tools-reference/kubelet' target='_blank' aria-label='kubelet'>kubelet</a> міг запускати
<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> та їхні контейнери, потрібне справне <a class='glossary-tooltip' title='Середовище виконання контейнера — це програмне забезпечення, яке відповідає за запуск та виконання контейнерів.' data-bs-toggle='tooltip' data-bs-placement='top' href='/uk/docs/setup/production-environment/container-runtimes' target='_blank' aria-label='середовище виконання контейнерів'>середовище виконання контейнерів</a> на кожному вузлі в кластері.

<p><p>Інтерфейс середовища виконання контейнерів (CRI) — основний протокол для взаємодії між <a class='glossary-tooltip' title='Агент, запущений на кожному вузлі кластера. Забезпечує запуск і роботу контейнерів у Podʼах.' data-bs-toggle='tooltip' data-bs-placement='top' href='/uk/docs/reference/command-line-tools-reference/kubelet' target='_blank' aria-label='kubelet'>kubelet</a> та середовищем виконання контейнерів.</p></p>
<p>Інтерфейс виконання контейнерів Kubernetes (CRI) визначає основний <a href="https://grpc.io">gRPC</a> протокол для звʼязку між
<a href="/uk/docs/concepts/architecture/#node-components">компонентами вузла</a> <a class='glossary-tooltip' title='Агент, запущений на кожному вузлі кластера. Забезпечує запуск і роботу контейнерів у Podʼах.' data-bs-toggle='tooltip' data-bs-placement='top' href='/uk/docs/reference/command-line-tools-reference/kubelet' target='_blank' aria-label='kubelet'>kubelet</a> та <a class='glossary-tooltip' title='Середовище виконання контейнера — це програмне забезпечення, яке відповідає за запуск та виконання контейнерів.' data-bs-toggle='tooltip' data-bs-placement='top' href='/uk/docs/setup/production-environment/container-runtimes' target='_blank' aria-label='середовищем виконання контейнерів'>середовищем виконання контейнерів</a>.</p>

<!-- body -->

## API {#api}








  <div class="feature-state-notice feature-stable">
      <span class="feature-state-name">СТАН ФУНКЦІОНАЛУ:</span>
      <code>Kubernetes v1.23 [stable]</code>
    </div>
  



Kubelet діє як клієнт при підключенні до середовища виконання контейнерів через gRPC. Endpointʼи служби виконання та образів повинні бути доступні в середовищі виконання контейнерів, це може бути налаштовано окремо в kubelet за [допомогою прапорця командного рядка](/docs/reference/command-line-tools-reference/kubelet/) `--container-runtime-endpoint`.

Для Kubernetes v1.26 і пізніших версій kubelet вимагає, щоб середовище виконання контейнерів підтримувало API CRI `v1`. Якщо середовище виконання контейнерів не підтримує API `v1`, kubelet не зареєструє вузол.

## Оновлення {#upgrading}

Під час оновлення версії Kubernetes на вузлі kubelet перезапускається. Якщо середовище виконання контейнерів не підтримує API CRI `v1`, kubelet не зможе зареєструватися і повідомить про помилку. Якщо через оновлення середовища виконання контейнера потрібно повторно зробити виклик gRPC, середовище виконання повинно підтримувати API CRI `v1`, щоб зʼєднання було успішним. Для цього може знадобитися перезапуск kubelet після правильного налаштування середовища виконання контейнера.

## List streaming {#list-streaming}








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


Стандартні RPC-запити списку CRI (`ListContainers`, `ListPodSandbox`, `ListImages`) повертають усі результати в єдиній унітарній відповіді. На вузлах із великою кількістю контейнерів (наприклад, понад приблизно 10 000, включаючи як ті, що працюють, так і зупинені), ці відповіді можуть перевищувати стандартне обмеження розміру повідомлення gRPC у 16 Мбайт, що призводить до збою kubelet під час узгодження стану з середовищем виконання контейнера.

З увімкненою функціональною можливістю `CRIListStreaming` kubelet використовує серверні потокові RPC (такі як `StreamContainers`, `StreamPodSandboxes`, `StreamImages`), які дозволяють середовищу виконання контейнера розподіляти результати по кількох повідомленнях відповіді, обходячи обмеження розміру повідомлення. Це особливо корисно для:

- Середовищ із високим обігом контейнерів (системи CI/CD)
- Великомасштабних пакетних обчислювальних навантажень

Якщо середовище виконання контейнера не підтримує потокові RPC, kubelet автоматично повертається до стандартних унітарних RPC для забезпечення зворотної сумісності.

## Що далі

- Дізнайтеся більше про [визначення протоколу](https://github.com/kubernetes/cri-api/blob/v0.33.1/pkg/apis/runtime/v1/api.proto) CRI
