meta data de esta página
Diferencias
Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previa | ||
virtualizacion:kubernetes:limitar [2020/10/26 23:07] – lc | virtualizacion:kubernetes:limitar [2023/01/18 14:37] (actual) – editor externo 127.0.0.1 | ||
---|---|---|---|
Línea 1: | Línea 1: | ||
- | ===== Limitar la Ram y la CPU de un pod ===== | + | ==== Limitar el consumo de los recursos ===== |
+ | ==== Limitar la Ram y la CPU de un pod ==== | ||
Para limitar la ram de un pod usaremos en el manifiesto del pod las opciones **request** y **limits**. | Para limitar la ram de un pod usaremos en el manifiesto del pod las opciones **request** y **limits**. | ||
Línea 5: | Línea 6: | ||
La opción **request** es para definir la cantidad de memoria que asignamos al pod y la opción limits define el máximo de memoria que podría llegar a usar ese pod. | La opción **request** es para definir la cantidad de memoria que asignamos al pod y la opción limits define el máximo de memoria que podría llegar a usar ese pod. | ||
- | |||
- | Veamos un ejemplo | ||
<sxh yaml> | <sxh yaml> | ||
apiVersion: v1 | apiVersion: v1 | ||
Línea 48: | Línea 47: | ||
Un LimitRange permite poner limitaciones : | Un LimitRange permite poner limitaciones : | ||
* Limitar la cantidad mínima y máxima de recursos que puede usar un pod o un contenedor en un namespace | * Limitar la cantidad mínima y máxima de recursos que puede usar un pod o un contenedor en un namespace | ||
- | * | + | * Definir los valores por defecto de **request** y **limits** para un recurso en el namespace |
+ | |||
+ | |||
+ | |||
+ | Veamos un ejemplo para definir los limits y los request | ||
<sxh yaml> | <sxh yaml> | ||
apiVersion: v1 | apiVersion: v1 | ||
Línea 85: | Línea 88: | ||
image: nginx: | image: nginx: | ||
</ | </ | ||
+ | Ejemplo para definir unos valores mínimos y máximos | ||
+ | <sxh yaml> | ||
+ | apiVersion: v1 | ||
+ | kind: Namespace | ||
+ | metadata: | ||
+ | name: prod | ||
+ | labels: | ||
+ | name: prod | ||
+ | --- | ||
+ | apiVersion: v1 | ||
+ | kind: LimitRange | ||
+ | metadata: | ||
+ | name: min-max | ||
+ | namespace: prod # | ||
+ | spec: | ||
+ | limits: | ||
+ | - max: | ||
+ | memory: 1Gi | ||
+ | cpu: 1 | ||
+ | min: | ||
+ | memory: 100M | ||
+ | cpu: 100m | ||
+ | type: Container | ||
+ | --- | ||
+ | apiVersion: v1 | ||
+ | kind: Pod | ||
+ | metadata: | ||
+ | name: podtest3 | ||
+ | namespace: prod # | ||
+ | labels: | ||
+ | app: backend | ||
+ | env: dev | ||
+ | spec: | ||
+ | containers: | ||
+ | - name: cont1 | ||
+ | image: nginx: | ||
+ | resources: | ||
+ | limits: | ||
+ | memory: 50M | ||
+ | cpu: 50m | ||
+ | </ | ||
+ | para ver los límites | ||
+ | < | ||
+ | |||
+ | <note warning> | ||
+ | |||
+ | ==== ResourceQuota ==== | ||
+ | Limita el consumo de recursos por namespace | ||
+ | |||
+ | <sxh yaml> | ||
+ | apiVersion: v1 | ||
+ | kind: Namespace | ||
+ | metadata: | ||
+ | name: uat | ||
+ | labels: | ||
+ | name: uat | ||
+ | --- | ||
+ | apiVersion: v1 | ||
+ | kind: ResourceQuota | ||
+ | metadata: | ||
+ | name: res-quota | ||
+ | namespace: uat | ||
+ | spec: | ||
+ | hard: | ||
+ | requests.cpu: | ||
+ | requests.memory: | ||
+ | limits.cpu: " | ||
+ | limits.memory: | ||
+ | </ | ||
+ | < | ||
+ | |||
+ | Tambien es posible limitar el número de pods de un namespace | ||
+ | <sxh yaml > | ||
+ | --- | ||
+ | apiVersion: v1 | ||
+ | kind: Namespace | ||
+ | metadata: | ||
+ | name: pre | ||
+ | labels: | ||
+ | name: pre | ||
+ | --- | ||
+ | apiVersion: v1 | ||
+ | kind: ResourceQuota | ||
+ | metadata: | ||
+ | name: pod-demo | ||
+ | namespace: pre | ||
+ | spec: | ||
+ | hard: | ||
+ | pods: " | ||
+ | </ | ||
===== Referencias ==== | ===== Referencias ==== | ||
* https:// | * https:// | ||
* https:// | * https:// | ||
* https:// | * https:// |