微信分销系统软件,泉州seo优化排名公司,wordpress 猪八戒,杭州网站建设是什么对k8s命名空间限制的方法有很多种#xff0c;今天来演示一下很常用的一种
用的k8s对象就是ResourceQuota
一#xff1a;创建命名空间
kubectl create ns test #namespace命名空间可以简写成ns 二#xff1a; 对命名空间进行限制
创建resourcequota
vim resourcequ…对k8s命名空间限制的方法有很多种今天来演示一下很常用的一种
用的k8s对象就是ResourceQuota
一创建命名空间
kubectl create ns test #namespace命名空间可以简写成ns 二 对命名空间进行限制
创建resourcequota
vim resourcequota.yaml
apiVersion: v1
kind: ResourceQuota #定义配额资源 ResourceQuota
metadata:name: quota-testlabels:app: quotanamespace: test #指定想要限制那个命名空间
spec:hard: #硬限制pods: 3 #pod最多创建3个count/deployments.apps: 1 #deploy资源最多创建1个cpu: 5 #cpu 下限总和5核 对比 container.resource下面的request.memorymemory: 5Gi #内存 下限总和5Gi 对比 container.resource下面的request.memorylimits.cpu: 10 #cpu 上限10核 对比 container.resource下面的limit.cpulimits.memory: 10Gi #内存 上限10Gi 对比 container.resource下面的limit.memory
kubectl apply -f resourcequota.yaml
查看一下命名空间的详细信息
kubectl describe ns test 这是显示的就是test这个名称空间下资源限制和使用情况
test 命名空间内最多只能有 1 个 Deployment。CPU 使用总量不超过 5 个单位。内存使用总量不超过 5GiB。Pod 的最大数量是 3 个。
三创建deploy资源进行测试
vim test-deploy.yaml
apiVersion: apps/v1
kind: Deployment
metadata:namespace: testname: quota-deploy
spec:selector:matchLabels:app: testreplicas: 2 # 副本数设置为 2template:metadata:labels:app: testspec:containers:- name: pod-quotaimage: 192.168.8.99/web/nginx:1.20imagePullPolicy: IfNotPresentresources:requests: # 资源请求保证容器启动所需的最小资源量cpu: 1 # 请求 1 个 CPU 核心memory: 1Gi # 请求 1GiB 内存limits: # 资源限制限制容器可以使用的最大资源量cpu: 2 # 限制使用不超过 2 个 CPU 核心memory: 2Gi # 限制使用不超过 2GiB 内存ports:- containerPort: 80
kubectl apply -f test-deploy.yaml
kubectl get pod -n test
kubectl describe ns test 可以看到pod已经创建出来了并且查看ns的详细信息显示资源限制pod已使用两个因为我们的deploy的副本数是两个
cpu和memory都是对应我们yaml文件中指定的resources
---
现在将deploy副本数修改为5个看看会怎么样
kubectl edit deploy quota-deploy -n test 将副本数这里的2换成5 即可
再查看pod 可以看到明明我们写的副本数是5个他却只创建出来了3个
再查看ns的详细信息 可以看到我们定义的资源限制起作用了 显示这个命名空间下的pod使用率已经满了
----------------
ResourceQuota 的好处和作用主要包括
资源管理限制命名空间内资源的使用量防止资源过度消耗。成本控制避免不必要的资源浪费降低运行成本。稳定性保障防止单个应用或用户占用过多资源影响其他应用运行。安全性增强减少因资源滥用导致的系统不稳定或安全风险