# Container Runtime Interface (CRI)

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

---

<!-- overview -->

_CRI_ es una interfaz de plugin que permite que kubelet use una amplia variedad de
container runtimes, sin necesidad de volver a compilar los componentes del clúster.

Necesitas un
_<a class='glossary-tooltip' title='El Container Runtime, entorno de ejecución de un contenedor, es el software responsable de ejecutar contenedores.' data-bs-toggle='tooltip' data-bs-placement='top' href='/es/docs/setup/production-environment/container-runtimes' target='_blank' aria-label='container runtime'>container runtime</a>_ ejecutándose en
cada Nodo en tu clúster, de manera que
<a class='glossary-tooltip' title='Agente que se ejecuta en cada nodo de un clúster. Se asegura de que los contenedores estén corriendo en un pod.' data-bs-toggle='tooltip' data-bs-placement='top' href='/es/docs/reference/generated/kubelet' target='_blank' aria-label='kubelet'>kubelet</a> pueda iniciar los
<a class='glossary-tooltip' title='El objeto más pequeño y simple de Kubernetes. Un Pod es la unidad mínima de computación en Kubernetes y representa uno o más contenedores ejecutándose en el clúster.' data-bs-toggle='tooltip' data-bs-placement='top' href='/es/docs/concepts/workloads/pods/pod-overview/' target='_blank' aria-label='Pods'>Pods</a> y sus contenedores.

<p><p>Container Runtime Interface (CRI) es el protocolo principal para la comunicación entre el <em>kubelet</em> y el <em>Container Runtime</em>.</p></p>
<p>La <em>Kubernetes Container Runtime Interface</em> (CRI) define el principal protocolo de
<a href="https://grpc.io">gRPC</a> para la comunicación entre los
<a href="/es/docs/concepts/overview/components/#componentes-de-nodo">componentes de clúster</a>
<em><a class='glossary-tooltip' title='Agente que se ejecuta en cada nodo de un clúster. Se asegura de que los contenedores estén corriendo en un pod.' data-bs-toggle='tooltip' data-bs-placement='top' href='/es/docs/reference/generated/kubelet' target='_blank' aria-label='kubelet'>kubelet</a></em> y
<em><a class='glossary-tooltip' title='El Container Runtime, entorno de ejecución de un contenedor, es el software responsable de ejecutar contenedores.' data-bs-toggle='tooltip' data-bs-placement='top' href='/es/docs/setup/production-environment/container-runtimes' target='_blank' aria-label='container runtime'>container runtime</a></em>.</p>

<!-- body -->

## API {#api}








  <div class="feature-state-notice feature-stable">
      <span class="feature-state-name">ESTADO DE LA RECURSOS:</span>
      <code>Kubernetes v1.23 [stable]</code>
    </div>
  



Kubelet actúa como un cliente cuando se conecta al _runtime_ del contenedor a través de gRPC.
El _runtime_ y los _endpoints_ del servicio de imágenes deben estar disponibles en el _runtime_ del contenedor,
que se puede configurar por separado dentro de kubelet usando
`--image-service-endpoint` [banderas de línea de comando](/docs/reference/command-line-tools-reference/kubelet).

Para Kubernetes v1.36, kubelet prefiere usar CRI `v1`.
Si el _runtime_ del contenedor no es compatible con `v1` del CRI, kubelet intenta
negociar cualquier versión compatible anterior.
Kubelet v1.36 también puede negociar CRI `v1alpha2`, pero
esta versión se considera obsoleta.
Si kubelet no puede negociar una versión CRI soportada, kubelet se da por vencido
y no se registra como nodo.

## Actualizando

Al actualizar Kubernetes, kubelet intenta seleccionar automáticamente la
última versión de CRI al reiniciar el componente. Si eso falla, entonces la alternativa
se llevará a cabo como se mencionó anteriormente. Si se requirió una rellamada de gRPC porque el
_runtime_ del contenedor se ha actualizado, entonces el _runtime_ del contenedor también debe
soportar la versión seleccionada inicialmente o se espera que la rellamada falle. Esto
requiere un reinicio de kubelet.

## ¿Qué sigue?

- Más información sobre CRI [definición de protocolo](https://github.com/kubernetes/cri-api/blob/c75ef5b/pkg/apis/runtime/v1/api.proto)
