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 22:56] – 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> | ||
| + | apiVersion: v1 | ||
| + | kind: Namespace | ||
| + | metadata: | ||
| + | name: dev | ||
| + | labels: | ||
| + | name: dev | ||
| + | --- | ||
| + | apiVersion: v1 | ||
| + | kind: LimitRange | ||
| + | metadata: | ||
| + | name: mem-cpu-limit-range | ||
| + | namespace: dev | ||
| + | spec: | ||
| + | limits: | ||
| + | - default: | ||
| + | memory: 512Mi | ||
| + | cpu: 1 | ||
| + | defaultRequest: | ||
| + | memory: 256Mi | ||
| + | cpu: 0.5 | ||
| + | type: Container | ||
| + | --- | ||
| + | apiVersion: v1 | ||
| + | kind: Pod | ||
| + | metadata: | ||
| + | name: podtest3 | ||
| + | namespace: dev | ||
| + | labels: | ||
| + | app: backend | ||
| + | env: dev | ||
| + | spec: | ||
| + | containers: | ||
| + | - name: cont1 | ||
| + | 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:// | ||