容器相关
非root用户Docker与K8S
Containerd安装
Containerd常用命令
Docker
镜像创建
国内镜像仓库
容器创建(Dockerfile)
容器系统
docker配置
docker数据管理
docker网络管理
docker容器自启动
docker镜像加速
docker问题
搭建Portainer可视化界面
Docker Swarm
Swarm搭建Docker集群
Docker Compose
Docker Compose命令
Docker Compose模板
Docker Machine
Kubernetes常用命令
k8s部署(kubeadmin)
k8s高可用部署
MiniKube
k8s1.24部署(containerd)
k8s1.24部署(docker)
部署 Dashboard
Kuboard K8S管理台
k8s权限管理
k8s网络插件
私有仓密码镜像拉取
k8s集群管理
POD--基本单位
Pod模板
Pod生命周期
Pod健康检查
初始化容器(initContainer)
Deployment--Pod的管理
Deployment模板
Deployment升级与回滚
DaemonSet控制器
StatefulSet控制器(有状态)
JOB与CRONJOB
Service--发布服务
ingress-traefix
ingress-nginx
MetalLB
存储与配置
持久存储卷
配置存储卷
资源管理
标签、选择器与注解
资源预留
调度管理
自动扩容
Proxy API与API Server
Helm--K8S的包管理器
helm常用命令
自定义Chart
私有chart仓库
helm dashboard
K8S证书过期
K8S问题解决
Harbor安装
Harbor操作
Harbor问题
Harbor升级
Docker Registry安装
Docker Registry鉴权
Registry用Nginx代理SSL及鉴权
Docker Registry问题
Istio 服务网络
常用示例
Gateway【服务网关】
kiali 可视化页面
开启HTTPS
linkerd 服务网络
本文档使用MrDoc发布
返回首页
-
+
资源管理
2021年9月24日 15:22
admin
#命名空间 >####主要作用是对K8S集群资源进行逻辑划分,用于实现多租户的资源隔离。 ##创建 kubectl create namespace <命名空间名称> --- ####或者 vim examplenamespace.yml #内容: apiVersion: v1 kind: Namespace metadata: name: examplenamespace ---- #应用 kubectl apply -f examplenamespace.yml --- ##查看 kubectl get namespaces -A -o wide kubectl describe namespace <命名空间名称> --- ####查看资源是否位于命名空间下 kubectl api-resources --namespaced=true #查看在命名空间下的资源 kubectl api-resources --namespaced=false #查看不在命名空间下的资源 ![](/media//202109/2021-09-24162119410734.png) #####No resource quota : 没有资源配额 #####No resource limits : 没有资源限额 --- #ResourceQuota(资源配额) >####用于设置命名空间下能够使用的各类资源总量。每个Namespace最多只能有一个Quota对象 --- ##创建ResourceQuota apiVersion: v1 kind: ResourceQuota metadata: namespace: examplenamespace #所属命名空间 name: examplenamespace #资源配额名称 labels: project: test app: resourcequota version: v1 spec: hard: #计算资源配额 requests.cpu: 0.5 #对于所有非终止状态的Pod,其CPU需求总量不能超过该值 requests.memory: 512Mi #对于所有非终止状态的Pod,其内存需求总量不能超过该值 limits.cpu: 5 #对于所有非终止状态的Pod,其CPU限额总量不能超过该值 limits.memory: 16Gi #对于所有非终止状态的Pod,其内存限额总量不能超过该值 cpu: 0.5 #等同于requests.cpu: 0.5 memory: 512Mi #等同于memory: 512Mi #存储资源配额 requests.storage: 500Gi #存储资源总量,如500Gi persistentvolumeclaims: 20 #允许存在的PVC数量 {storage-class-name}.storageclass.storage.k8s.io/requests.storage 500Gi #与{storage-class-name}相关的PVC中,存储资源总量 {storage-class-name}.storageclass.storage.k8s.io/persistentvolumeclaims 200 #与{storage-class-name}相关的PVC中,允许存在的PVC数量 #对象数量配额 configmaps: 20 #允许存在的ConfigMap数量 pods: 50 #允许存在的pods数量 replicationcontrollers: 20 #允许存在的replicationcontroller数量 services: 50 #允许存在的services数量 services.loadbalancers: 20 #允许存在的load balancer类型的service的数量。 services.nodeports: 20 #允许存在的node port类型的service的数量。 secrets: 20 #允许存在的secrets数量 --- ##查看ResourceQuota kubectl get resourcequota -A -o wide kubectl describe resourcequota exampleresourcequota -n examplenamespace --- ##删除 kubectl delete resourcequota exampleresourcequota --- #LimitRange(资源限额) >####用于为了避免单个资源对象消耗所有的命名空间资源,通过LimitRange来对单个资源对象的资源占用量进行限定。 --- ####注意:LimitRange是在pod和container级别的资源限制 --- ##创建LimitRange apiVersion: v1 kind: LimitRange metadata: namespace: examplenamespace #所属命名空间 name: examplenamespace #资源限额名称 spec: limits: - type: Pod max: #表示pod中所有容器资源的Limit值和的上限 cpu: "4" memory: 2Gi min: #表示pod中所有容器资源请求总和的下限 cpu: 200m memory: 6Mi maxLimitRequestRatio: #表示pod中所有容器资源请求的Limit值和request值比值的上限 cpu: 3 memory: 2 - type: Container default: #即defaultlimit cpu: 300m memory: 200Mi defaultRequest: cpu: 200m memory: 100Mi max: cpu: "2" memory: 1Gi min: cpu: 100m memory: 3Mi maxLimitRequestRatio: cpu: 5 memory: 4 type: Container --- ####如果container设置了max, pod中的容器必须设置limit,如果未设置,则使用defaultlimt的值,如果defaultlimit也没有设置,则无法成功创建 ####如果设置了container的min,创建容器的时候必须设置request的值,如果没有设置,则使用defaultrequest,如果没有defaultrequest,则默认等于容器的limit值,如果limit也没有,启动就会报错 ####注意:defaultrequest和defaultlimit则是默认值,注意:pod级别没有这两项设置 ---
分享到: