|
|||||||
Ресуры пода в Kubernetes
Время создания: 21.09.2018 13:35
Автор: br0ke
Текстовые метки: kubernetes, k8s, kube, kubectl, resource, request, requests, limit, limits, cpu, memory, mem
Раздел: Информационные технологии - Linux - Kubernetes
Запись: and-semakin/mytetra_data/master/base/153751895955fm56olbd/text.html на raw.githubusercontent.com
|
|||||||
|
|||||||
При описании ресурса можно задать минимальные требования пода к ресурсам (requests) и ограничить максимальное возможное потребление ресурсов (limits, рекомендуется определять всегда). requests нужны, чтобы планировщик Kubernetes мог равномерно распределять поды по нодам кластера и не перегружал ноды, т.е. если сумма requests всех подов превышает доступный ресурс ноды, то на эту ноду больше не будут добавляться новые поды. limits нужны, чтобы Kubernetes мог убивать поды при превышении заданных лимитов, тем самым защищая другие поды от недостатка ресурсов. Определяются следующие типы ресурсов:
Например, все эти значения обозначают один и тот же размер памяти: 128974848, 129e6, 129M, 123Mi Например: 0.1 == 100m, 2 == 2000m. CPU всегда представляется как абсолютное значение и не зависит от количества и частоты процессорных ядер на ноде: будь их 2 или 48, 100m всегда будет означать одну десятую вычислительной мощности одного ядра. При превышении лимита памяти, контейнер может быть убит. При превышении запроса памяти, контейнер может быть "изгнан", если на ноде будет не хватать памяти. Контейнер не может расходовать больше процессорного времени, чем ему выделено, но он не будет убит, если попытается вычислять активнее. Пример: apiVersion: v1 kind: Pod metadata: name: frontend spec: containers: - name: db image: mysql env: - name: MYSQL_ROOT_PASSWORD value: "password" resources: requests: memory: "64Mi" cpu: "250m" limits: memory: "128Mi" cpu: "500m" - name: wp image: wordpress resources: requests: memory: "64Mi" cpu: "250m" limits: memory: "128Mi" cpu: "500m" Значения по умолчанию Можно задать значения для ресурсов по умолчанию для пространства имен (и они уже заданы). Пример: apiVersion: v1 kind: LimitRange metadata: name: mem-limit-range spec: limits: - default: memory: 512Mi defaultRequest: memory: 256Mi type: Container # kubectl create -f https://k8s.io/examples/admin/resource/memory-defaults.yaml --namespace=default-mem-example Создать под: apiVersion: v1 kind: Pod metadata: name: default-mem-demo spec: containers: - name: default-mem-demo-ctr image: nginx # kubectl create -f https://k8s.io/examples/admin/resource/memory-defaults-pod.yaml --namespace=default-mem-example Просмотреть информацию о поде: # kubectl get pod default-mem-demo --output=yaml --namespace=default-mem-example containers: - image: nginx imagePullPolicy: Always name: default-mem-demo-ctr resources: limits: memory: 512Mi requests: memory: 256Mi |
|||||||
Так же в этом разделе:
|
|||||||
|
|||||||
|