Kubernetesリソース制約が実際のcgroupによって制御される、のcgroupのコレクションは、メモリ、CPUのためのプロセスを実行するカーネルが、様々なデバイスは、cgroup内の対応している方法を制御するために使用される容器を関連する属性の集合です。
デフォルトでは、ポッドは、特定の用途のために通常ポッド資源、どの手段任意のポッドシステムに十分なCPUとメモリを消費し、同じノード、ポッドのように実行することができますことを、CPUとメモリを実行制限はありませんリソースの制約は、このリソース制限を達成するために制限リソースによって設定されます。
注:以下はYAMLファイルのリソース制限の断片のみではなく、完全なYAMLファイルです!
ポッド1)リソース制限
[root@master limit]# vim cgroup-pod.yaml
spec:
containers:
- name: xxx
image: xxx
ports:
- protocol: TCP
containerPort: 80
resources:
limits: #硬限制
cpu: "4"
memory: 2Gi
requests: #运行pod时请求的资源数量
cpu: 260m
memory: 260Mi
リクエスト:割り当てられるリソースは、リソース要求の最大値を制限します。これは単に初期値及び最大値として理解することができます。
2)資源制約の名前空間に基づいて(リミット1)は、特定の名前空間を開発することができます
1)リソースクォータを計算します
[root@master limit]# vim compute-resource.yaml
apiVersion: v1
kind: ResourceQuota
metadata:
name: compute-resources
spec:
hard:
pods: "20" #所有pod数量不可以超过20个
requests.cpu: "20" #初始请求的CPU不可以超过20m
requests.memory: 100Gi #初始请求的内存不可以超过100G
limits.cpu: "40" #CPU的硬限制
limits.memory: 200Gi #内存的硬限制
2)リソースの数がクォータオブジェクト
[root@master limit]# vim object-counts.yaml
apiVersion: v1
kind: ResourceQuota
metadata:
name: object-counts
spec:
hard:
configmaps: "10" #最多可以创建10个configmap
persistentvolumeclaims: "4" #最多可以创建4个PVC
replicationcontrollers: "20" #最多可以创建20个RC资源对象
secrets: "10" #最多可以创建10个secrets
service.loadbalancers: "2" #最多可以创建2个svc
3)CPU及びメモリ構成limitRange
[root@master limit]# vim limitRange.yaml
apiVersion: v1
kind: LimitRange
metadata:
name: mem-limit-range
spec:
limits:
- default:
memory: 50Gi #硬限制
cpu: 5 #硬限制
defaultRequest: #初始请求
memory: 1Gi
cpu: 1
type: Container #限制对象为容器
すなわち、デフォルトの制限値、defaultRequest即ち要求の値。
--------この記事の最後に、これまで、読んでくれてありがとう--------