kubernetes限制pod的cpu和記憶體
阿新 • • 發佈:2019-01-07
1、在建立容器的配置檔案中指定
spec: containers: - image: gcr.io/google_containers/serve_hostname imagePullPolicy: Always name: kubernetes-serve-hostname resources: limits: cpu: "1" #限制pod申請最大的cpu數量為1個cpu memory: 512Mi #申請記憶體最大值 requests: cpu: "0.5" #pod申請的cpu數量為0.5個cpu memory: 400Mi #申請記憶體的最小值
2、引數解釋
requests requests用於schedule階段,在排程pod保證所有pod的requests總和小於node能提供的計算能力 requests.cpu被轉成docker的--cpu-shares引數,與cgroup cpu.shares功能相同 設定容器的cpu的相對權重 該引數在CPU資源不足時生效,根據容器requests.cpu的比例來分配cpu資源 CPU資源充足時,requests.cpu不會限制container佔用的最大值,container可以獨佔CPU requests.memory沒有對應的docker引數,作為k8s排程依據 使用requests來設定各容器需要的最小資源 limits limits限制執行時容器佔用的資源 limits.cpu會被轉換成docker的–cpu-quota引數。與cgroup cpu.cfs_quota_us功能相同 限制容器的最大CPU使用率 cpu.cfs_quota_us引數與cpu.cfs_period_us結合使用,後者設定時間週期 k8s將docker的–cpu-period引數設定100毫秒。對應著cgroup的cpu.cfs_period_us limits.cpu的單位使用m,千分之一核 limits.memory會被轉換成docker的–memory引數。用來限制容器使用的最大記憶體 當容器申請記憶體超過limits時會被終止