-
Notifications
You must be signed in to change notification settings - Fork 555
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #3231 from cncf/dev-es
[es] Merge dev-es branch into main branch
- Loading branch information
Showing
5 changed files
with
111 additions
and
33 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
--- | ||
title: eBPF | ||
status: Completed | ||
category: Tecnología | ||
tags: ["arquitectura", "redes", "seguridad"] | ||
--- | ||
|
||
eBPF, o "extended Berkeley Packet Filter", es una tecnología que permite a pequeños programas o scripts aislados ejecutarse en el espacio del kernel de un sistema Linux sin necesidad de cambiar el código fuente ni cargar módulos al kernel Linux. | ||
|
||
Un sistema Linux tiene dos espacios: el de kernel y el de usuario. | ||
El kernel representa el sistema operativo y es la única parte | ||
con acceso ilimitado al hardware. | ||
|
||
Las aplicaciones quedan en el espacio de usuario y, cuando necesitan permisos más elevados, | ||
envían una solicitud al kernel. | ||
Para aplicaciones que requieren más flexibilidad, como el acceso directo al hardware, | ||
el kernel puede ser extendido mediante lo que se conoce como el enfoque de "módulos | ||
del kernel Linux". Este enfoque amplía la funcionalidad predeterminada del kernel, | ||
permitiendo a las aplicaciones un acceso más profundo a los componentes básicos. | ||
Sin embargo, este enfoque también introduce riesgos de seguridad, lo que hace que eBPF sea una alternativa atractiva. | ||
|
||
## Problema que soluciona | ||
Típicamente, las aplicaciones se ejecutan en el espacio de usuario y, si la aplicación requiere algunos privilegios del kernel (por ejemplo, para acceder a algún hardware), | ||
lo solicita al kernel a través de una llamada al sistema conocida como "system call". | ||
En la mayoría de los casos, este enfoque funciona bien. Sin embargo, hay casos en los que los desarrolladores requieren más flexibilidad para acceder al sistema a nivel bajo. | ||
La observabilidad, la seguridad y las redes son buenos ejemplos. | ||
Para lograrlo, podemos utilizar módulos del kernel Linux, ampliando la base del kernel sin modificar el código principal del kernel. | ||
Si bien hay beneficios en el uso de módulos del kernel Linux, también introduce riesgos de seguridad. | ||
Como operan dentro del espacio del kernel, los módulos del kernel Linux pueden hacer que el kernel falle y, cuando el kernel falla, también lo hace toda la máquina. | ||
Además, los módulos del kernel tienen privilegios elevados y acceso directo a los recursos del sistema. Y si no están adecuadamente aseguradas, los atacantes pueden explotarlas. | ||
|
||
## ¿Cómo ayuda? | ||
eBPF proporciona un entorno más controlado y contenido para ejecutar programas definidos por el usuario que los módulos del kernel Linux. | ||
Se ejecuta en un entorno aislado dentro del kernel, proporcionando aislamiento y mitigando riesgos. | ||
Si se explota una vulnerabilidad o defecto en un programa eBPF, su impacto generalmente se limita al entorno aislado. | ||
Además, antes de que un programa eBPF pueda comenzar a ejecutarse en el kernel, debe pasar por algunas verificaciones. | ||
El componente verificador verifica el programa eBPF en busca de posibles violaciones de seguridad, | ||
como el acceso a memoria fuera de límites, ciclos infinitos y funciones del kernel no autorizadas. | ||
De esta manera, asegura que el programa no entre en un ciclos infinitos y provoque un fallo del kernel. | ||
Estos controles de seguridad hacen que eBPF sea una opción más segura para ejecutar aplicaciones en el kernel Linux que los módulos del kernel Linux. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
--- | ||
title: Pod | ||
status: Completed | ||
category: Concepto | ||
tags: ["infraestructura", "fundamento", ""] | ||
--- | ||
|
||
Dentro de un entorno de [Kubernetes](/es/kubernetes/), un Pod actúa como la unidad más básica desplegable. | ||
Representa un bloque de construcción esencial para desplegar y administrar aplicaciones contenedorizadas. | ||
Cada Pod contiene una única instancia de la aplicación y puede albergar uno o más [contenedores](/es/container/). | ||
Kubernetes administra los Pods como parte de un despliegue más grande y puede escalar los Pods [vertical](/es/vertical-scaling/) u [horizontalmente](/es/horizontal-scaling/) según sea necesario. | ||
|
||
## Problema que aborda | ||
|
||
Mientras los contenedores generalmente actúan como unidades independientes que ejecutan y controlan una carga de trabajo en particular, | ||
hay casos en los que los contenedores necesitan interactuar y ser controlados de manera estrechamente acoplada. | ||
|
||
Si cada uno de estos contenedores estrechamente relacionados se administrara individualmente, se generarían tareas de gestión redundantes. | ||
Por ejemplo, el operador tendría que determinar repetidamente la ubicación de los contenedores relacionados para asegurarse que permanezcan juntos. | ||
Y aunque los ciclos de vida de estos contenedores relacionados necesitan estar sincronizados, solo se pueden administrar individualmente. | ||
|
||
|
||
## ¿Cómo ayuda? | ||
|
||
Los Pods agrupan contenedores estrechamente vinculados en una única unidad, lo que simplifica significativamente las operaciones de contenedores. | ||
Por ejemplo, los contenedores auxiliares a menudo se suelen utilizar junto con el contenedor principal para agregar funcionalidades adicionales o configurar aspectos globales. | ||
Ejemplos de esto incluyen contenedores que inyectan y aplican configuraciones básicas al contenedor principal, | ||
_sidecar_ (contenedores auxiliares) que manejan el enrutamiento del tráfico de red para el contenedor principal (ver [malla de servicios](/es/service-mesh/)) | ||
o contenedores que recolectan registros en conjunto con cada contenedor. | ||
|
||
La asignación de memoria y CPU se puede definir a nivel de Pod, permitiendo a los contenedores internos a compartir recursos de forma flexible, o bien se puede definir por contenedor individualmente. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters