Kubernetes對資源的限制實際上是通過cgroup來控制的,cgroup是容器的一組用來控制內核如何運行進程的相關屬性集合,針對內存、CPU各種設備都有對應的cgroup。
創(chuàng)新互聯(lián)-專業(yè)網站定制、快速模板網站建設、高性價比民樂網站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式民樂網站制作公司更省心,省錢,快速模板網站建設找我們,業(yè)務覆蓋民樂地區(qū)。費用合理售后完善,十載實體公司更值得信賴。默認情況下,Pod運行沒有CPU和內存的限制,這就意味著系統(tǒng)中的任何pod將能夠像執(zhí)行該pod所在的節(jié)點一樣,消耗足夠多的CPU和內存,一般會針對某些應用的Pod資源進行資源限制,這個資源限制是通過resources的limits來實現的。
注:以下只是在yaml文件中進行資源限制的一個片段,并不是完整的yaml文件!
[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
requests: 要分配的資源,limits為高請求的資源值??梢院唵蔚睦斫鉃槌跏贾岛痛笾怠?/p>
[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 #內存的硬限制
[root@master limit]# vim object-counts.yaml
apiVersion: v1
kind: ResourceQuota
metadata:
name: object-counts
spec:
hard:
configmaps: "10" #最多可以創(chuàng)建10個configmap
persistentvolumeclaims: "4" #最多可以創(chuàng)建4個PVC
replicationcontrollers: "20" #最多可以創(chuàng)建20個RC資源對象
secrets: "10" #最多可以創(chuàng)建10個secrets
service.loadbalancers: "2" #最多可以創(chuàng)建2個svc
[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 #限制對象為容器
default 即 limit的值,defaultRequest 即 request的值。
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。