Kubernetesリソース割当(limit/request)
1975 ワード
概要
kubernetesはクラスタ管理プラットフォームであり、kubernetesは全体のプラットフォームの資源使用状況を統計し、合理的に資源を容器に分配し、容器のライフサイクル内に十分な資源が運行することを保証する必要がある.また、リソースの配布が独占的である場合、CPUなどの使用されていないリソースを空きコンテナに占有するのは非常に浪費される.k 8 sは、優先度と公平性を前提にリソースの利用率をどのように提供するかを考慮する必要がある.
リソースが有効にスケジューリングされ、割り当てられると同時にリソースの利用率が向上するように、k 8 sはrequestとlimitの2つの制限タイプを用いてリソースを割り当てる.
Limit/request制限タイプの説明
requestコンテナで使用される最小リソース要件は,コンテナスケジューリング時のリソース割り当ての判断に依存する. 現在のノードに割り当てられるリソース量>=requestの場合にのみ、コンテナをノードにスケジュールできます. requestパラメータコンテナの最大使用可能リソース を制限しない
limitコンテナ使用可能リソースの最大値 が0に設定されていることは、使用するリソースに制限がないことを示し、 を無限に使用することができる.
requestとlimitの関係
requestはpodが実行するのに十分なリソースを保証することができるが、limitはあるpodの無制限な使用リソースを防止し、他のpodが崩壊することを防止する.両者の関係は次のように満たされる必要があります.
limit=0がリソースを制限しないことを示す場合、requestより小さくすることができます.
現在、CPUはrequestとlimitの設定をサポートしており、memoryはrequestの設定のみをサポートしており、limitは強制的にrequestに等しくしなければならない.これにより、メモリの使用量がrequestを超えているがlimitを超えていない場合、コンテナが意外なkillに落ちないことを確保する.
limit/request使用例
リファレンス Kubernetesリソース割当のRequestとLimit解析
kubernetesはクラスタ管理プラットフォームであり、kubernetesは全体のプラットフォームの資源使用状況を統計し、合理的に資源を容器に分配し、容器のライフサイクル内に十分な資源が運行することを保証する必要がある.また、リソースの配布が独占的である場合、CPUなどの使用されていないリソースを空きコンテナに占有するのは非常に浪費される.k 8 sは、優先度と公平性を前提にリソースの利用率をどのように提供するかを考慮する必要がある.
リソースが有効にスケジューリングされ、割り当てられると同時にリソースの利用率が向上するように、k 8 sはrequestとlimitの2つの制限タイプを用いてリソースを割り当てる.
Limit/request制限タイプの説明
request
limit
requestとlimitの関係
requestはpodが実行するのに十分なリソースを保証することができるが、limitはあるpodの無制限な使用リソースを防止し、他のpodが崩壊することを防止する.両者の関係は次のように満たされる必要があります.
0 <= request <= limit
limit=0がリソースを制限しないことを示す場合、requestより小さくすることができます.
現在、CPUはrequestとlimitの設定をサポートしており、memoryはrequestの設定のみをサポートしており、limitは強制的にrequestに等しくしなければならない.これにより、メモリの使用量がrequestを超えているがlimitを超えていない場合、コンテナが意外なkillに落ちないことを確保する.
limit/request使用例
---
apiVersion: apps/v1beta2
kind: Deployment
metadata:
name: nginx
namespace: php
labels:
app: nginx
spec:
revisionHistoryLimit: 10
strategy:
type: RollingUpdate
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:latest
ports:
- containerPort: 80
protocol: TCP
resources:
requests:
cpu: 0.5
memory: 1024Mi
limits:
cpu: 1
memory: 2048Mi
---
apiVersion: autoscaling/v1
kind: HorizontalPodAutoscaler
metadata:
name: nginx
labels:
app: nginx
spec:
scaleTargetRef:
apiVersion: extensions/v1beta1
kind: Deployment
name: nginx
minReplicas: 2
maxReplicas: 4
targetCPUUtilizationPercentage: 80
リファレンス