本文主要是介绍【kubernetes】为命名空间Namespace创建 资源配额,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
命名空间Namespace是k8s集群级别的资源。
可以给不同的用户/租户/环境或项目,创建不同的命名空间。如:开发,测试,生成分别创建各自的命名空间。
它的底层依赖同一个物理集群。
1,创建命名空间
# 创建命名空间
kubectl create ns[namespace] ceshi
# 查看命名空间
kubectl get ns[namespace]
2,资源配额
资源配额:resourcequota
limits.cpu 所有非终止状态的 Pod,其 CPU 限额总量不能超过该值。
limits.memory 所有非终止状态的 Pod,其内存限额总量不能超过该值。
requests.cpu 所有非终止状态的 Pod,其 CPU 需求总量不能超过该值。
requests.memory 所有非终止状态的 Pod,其内存需求总量不能超过该值。
# vi resource.yamlapiVersion: v1
kind: ResourceQuota
metadata:labels:app: resourcename: rescourc-ceshinamespace: ceshi # 针对哪个命名空间进行资源配额
spec:hard:limits.cpu: 2 # 最大cpu内核为2limits.memory: 2Gi # 最大内存为2Grequests.cpu: 4 # 请求cpu数requests.memory: 4Gi # 需求内存总值
创建资源配额:
kubectl apply -f resource.yamlkubectl get resourcequota -n ceshi# 直接看到限制的具体参数:
NAME AGE REQUEST LIMIT
rescourc-ceshi 10m requests.cpu: 0/4, requests.memory: 0/4Gi limits.cpu: 0/2, limits.memory: 0/2Gi
3,在命名空间ceshi中,创建pod的yaml文件
分别调试资源的参数值,看看得出:超出限制后,pod创建失败!
# resource-pod.yamlapiVersion: v1
kind: Pod
metadata:name: resource-podnamespace: ceshilabels:app: resource-podzuoz: mdy
spec:containers:- name: resource-podimage: xianchao/tomcat-8.5-jre8:v1imagePullPolicy: IfNotPresentports:- containerPort: 8080resources:limits:memory: "5Gi" # 超出资源配置的最大内存数为4Gicpu: 2requests:memory: "100Mi"cpu: "500m"
执行命令kubectl apply -f resource-pod.yaml
报错:容量超限
[root@master namespace]# kubectl apply -f resource-pod.yaml
Error from server (Forbidden): error when creating "resource-pod.yaml": pods "resource-pod" is forbidden: exceeded quota: rescourc-ceshi, requested: limits.memory=5Gi, used: limits.memory=0, limited: limits.memory=2Gi
更改小于限额的内存大小:
resources:limits:memory: "1Gi" # 超出资源配置的最大内存数为4Gicpu: 2requests:memory: "100Mi"cpu: "500m"
再次创建,成功生成!!
这篇关于【kubernetes】为命名空间Namespace创建 资源配额的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!