wordpress 全站通知,营口网站建设公司,网站建设 技术可行性,全国手工活外发加工平台1、Pod定义requests、limits相关参数 在k8s中#xff0c;全面限制一个应用及其中的pod所能占用的资源配额#xff0c;具体可以使用下面三种方式#xff1a; 1、定义每个pod的资源配额相关参数#xff0c;如CPU/memory的request、limits#xff1b; 2、自动为每个没有定义资…1、Pod定义requests、limits相关参数 在k8s中全面限制一个应用及其中的pod所能占用的资源配额具体可以使用下面三种方式 1、定义每个pod的资源配额相关参数如CPU/memory的request、limits 2、自动为每个没有定义资源配额的pod添加资源配额模板LimitRange 3、从总量上限制一个租户namespace应用所能使用的资源配额ResourceQuota pod的request、limits是指pod中所有容器的request、limits的总和对于没有设置request、limits的容器该值为0或者按照集群配置的默认值计算 LimiteRang正是用于解决了没有设置配额参数的pod的默认资源配额问题 REsourceQuota则约束租户的资源总量配额问题。
2、pod定义requests、limits pod可以定义资源配额的相关参数 spec.container[].resources.requests.cpu容器初始要求的CPU数量 spec.container[].resources.limits.cpu容器所能使用的最大CPU数量 spec.container[].resources.requests.memory容器初始要求的内存数量 spec.container[].resources.limits.memory容器所能使用的最大内存数量 默认情况下pod中只写requestscpu和memory写其中一个或两个都写不写limits则默认没有最大资源限制 pod中只写limits.cpu、limits.memory不写requests.cpu、requests.memory默认的requests的cpu、memory其值等于对应的limits的cpu、memory值 pod中只写limits的cpu或memory其中的一个则requests对应的也等价于limits的对应的一个值。如只写limits.cpu则requests.cpu值limits.cpu值limits.memory没写则requests.memory也没有值。 3、requests和limits背后的机制 如果容器运行时是docker那么pod的requests和limits归根结底还是要转换为docker run启动容器的参数对应如下 spec.container[].resources.requests.cpu docker run --cpu-shares spec.container[].resources.limits.cpu docker run --cpu-period spec.container[].resources.requests.memory 无请求内存只会作为调度器的参考不会作为如何参数传递给docker run spec.container[].resources.limits.memory docker run --memory 查看节点资源情况
// 可以查看节点的计算资源总量和已分配量
kubectl describe node master01pod使用request、limits示例
kubectl create ns nginx #创建命名空间例如
vim nginx-test.yaml #创建podpod包含2个容器apiVersion: apps/v1
kind: Deployment
metadata:name: nginx-testnamespace: nginx-test
spec:
........spec:containers:- image: nginximagePullPolicy: IfNotPresentname: nginx-test-1resources: #定义资源请求、资源限制requests: #资源请求memory: 20Mi #内存请求cpu: 30m #CPU请求limits: #资源限制memory: 50Mi #内存限制cpu: 50m #CPU限制ports:- containerPort: 80name: nginx- image: tomcatimagePullPolicy: IfNotPresentname: tomcat-test-2resources: #定义资源请求、资源限制requests: #资源请求memory: 10Mi #内存请求cpu: 20m #CPU请求limits: #资源限制memory: 40Mi #内存限制cpu: 40m #CPU限制ports:- containerPort: 8080name: tomcat** 查看pod占用的资源情况**
[rootmaster ~]# kubectl describe node node2 | grep -C10 nginx-test-7d448999cb-mxq6sNamespace Name CPU Requests CPU Limits Memory Requests Memory Limits Age--------- ---- ------------ ---------- --------------- ------------- ----nginx-test nginx-test-7d448999cb-mxq6s 50m (1%) 90m (2%) 30Mi (1%) 90Mi (4%) 6m31s**注**可以看到我们创建的pod一共请求50m的CPU,30Mi的内存,最大CPU限制为90m,最大内存限制为90Mi