meta data de esta página
Diferencias
Muestra las diferencias entre dos versiones de la página.
Próxima revisión | Revisión previa | ||
virtualizacion:kubernetes:limitar [2020/10/26 22:31] – creado 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 **memory limit** | + | Para limitar la ram de un pod usaremos en el manifiesto del pod las opciones **request** y **limits**. |
+ | |||
+ | 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 22: | Línea 24: | ||
</ | </ | ||
+ | Para limitar la cantidad de CPU a utilizar | ||
+ | <sxh yaml> | ||
+ | apiVersion: v1 | ||
+ | kind: Pod | ||
+ | metadata: | ||
+ | name: cpu-demo | ||
+ | spec: | ||
+ | containers: | ||
+ | - name: cpu-demo-ctr | ||
+ | image: vish/stress | ||
+ | resources: | ||
+ | limits: | ||
+ | cpu: " | ||
+ | requests: | ||
+ | cpu: " | ||
+ | args: | ||
+ | - -cpus | ||
+ | - " | ||
+ | </ | ||
+ | |||
+ | ==== LimitRange ==== | ||
+ | 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 | ||
+ | * 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:// |