下文基于kubernetes 1.5.2版本编写
概念
Resource Quotas(资源配额,简称quota)是对namespace进行资源配额,限制资源使用的一种策略。 K8S是一个多用户架构,当多用户或者团队共享一个K8S系统时,SA使用quota防止用户(基于namespace的)的资源抢占,定义好资源分配策略。
Quota应用在Namespace上,默认情况下,没有Resource Quota的,需要另外创建Quota,并且每个Namespace最多只能有一个Quota对象。
限额资源类型
计算资源:limits.cpu、requests.cpu、limits.memory、requests.memory
存储资源,包括存储资源的总量以及指定storage class的总量
requests.storage:存储资源总量,如500Gi
persistentvolumeclaims:pvc的个数
.storageclass.storage.k8s.io/requests.storage
.storageclass.storage.k8s.io/persistentvolumeclaims
对象数,即可创建的对象的个数
pods,replicationcontrollers,configmaps,secrets,persistentvolumeclaims,services,services.loadbalancers,services.nodeports
使用注意实现
在使用前需确认apiserver的配置文件中的KUBE_ADMISSION_CONTROL是否有ResourceQuota,如果没有需要添加并重启apiserver。
Quota依赖于资源管理器,可以使用资源对象limits或者在创建资源对象是为pod设置资源限制(resources),如果不设置,资源对象无法创建。
当该namespace中的任意个额度达到预设Quota时,将无法创建资源对象。
例子
比如K8S系统共有20核CPU和32GB内存,分配给lykops用户5核CPU和16GB,分配给lykchat租户5核CPU 和8GB,预留10核CPU和8GB内存。这样,用户中所使用的CPU和内存的总和不能超过指定的资源配额,促使其更合理地使用资源。
kubectl delete -f resourcequota.yaml
cat << EOF > resourcequota.yaml
apiVersion: v1
kind: ResourceQuota
metadata:
namespace: lykops
name: lykops
labels:
project: lykops
app: resourcequota
version: v1
spec:
hard:
pods: 50
requests.cpu: 0.5
requests.memory: 512Mi
limits.cpu: 5
limits.memory: 16Gi
configmaps: 20
persistentvolumeclaims: 20
replicationcontrollers: 20
secrets: 20
services: 50
EOF
kubectl create -f resourcequota.yaml
分享到:
相关推荐
本文将深入探讨如何在Linux(AMD64架构)环境中安装和配置Kubernetes节点,以"**kubernetes-node-linux-amd64.tar.gz**"为例,我们将基于CentOS操作系统进行详细讲解。 一、Kubernetes简介 Kubernetes是由Google...
这个"**kubernetes-server-linux-amd64.tar.gz**"安装包包含了在基于Linux的AMD64架构系统上部署Kubernetes集群所需的核心组件。该版本是v1.20.15,这是一款稳定版本,提供了大量的修复和优化。 Kubernetes主要由...
本篇文章将聚焦于“kubernetes-server-linux-amd64.tar”这一文件,深入解析其在Linux平台上的部署与使用,同时探讨k8s的核心概念和技术细节。 首先,"kubernetes-server-linux-amd64.tar"是Kubernetes集群服务器的...
Kubernetes1.13 所需kubernetes-cni-0.6.0-0.x86_64.rpm rpm 包. tar -zxvf kubernetes-cni-0.6.0-0.x86_64.rpm.tar.gz yum install ./kubernetes-cni-0.6.0-0.x86_64.rpm kubelet-1.13.0 kubeadm-1.13.0 kubectl-...
kubernetes-dashboard-amd64-v1.10.0镜像,docker load -i kubernetes-dashboard-amd64-v1.10.0.tgz
"kubernetes-server-linux-amd64.tar.gz"是一个针对Linux AMD64平台的Kubernetes服务器安装包,它包含了部署Kubernetes集群所需的所有核心组件。本文将详细介绍如何利用这个压缩包在Linux环境中搭建Kubernetes集群。...
Kubernetes客户端Linux AMD64资源包,`kubernetes-client-linux-amd64.tar.gz`,是专为基于Linux的AMD64(也称为x86_64)架构设计的Kubernetes命令行接口(CLI)工具集。这个压缩包包含了一系列用于与Kubernetes集群...
kubernetes-dashboard-amd64-v1.8.3镜像,镜像使用方法: docker load -i kubernetes-dashboard-amd64-v1.8.3.tar.gz
这个“kubernetes-server-linux-amd64-v1.15.4.tar.gz”文件是针对Linux 64位系统的Kubernetes服务器端1.15.4版本的离线安装包。这个版本的发布旨在帮助那些因网络问题无法从官方源直接下载的用户。 在Kubernetes ...
kubernetes-dashboard-amd64-v1.8.3镜像包,由于国外镜像无法下载,可以用这个包load到本地镜像,再上传到你的私有仓库,实现离线部署安装dashboard。解压后有操作命令
kubernetes的quay.io/kubernetes-ingress-controller/nginx-ingress-controller:0.20.0镜像包,版本为v0.20.0。文件先解压,之后得到nginx-ingress-controller.0.20.0.tar
总之,"kubernetes-node-linux-amd64.tar.gz-v1.14.11"提供了一个完整的Kubernetes节点软件包,使用户能够轻松地将Linux服务器集成到现有的或新的Kubernetes集群中,以扩展集群的计算资源并支持应用程序的运行。...
在Windows环境下,为了能够方便地操作和管理Kubernetes集群,官方提供了专门的Windows客户端,即kubernetes-client-windows-amd64。本文将详细解析kubernetes-client-windows-amd64的版本v1.10.11及其核心功能。 1....
`kubernetes-client-darwin-amd64.tar.gz-v1.14.1`是一个针对苹果 macOS 操作系统(Darwin)的AMD64架构(也称为x86_64)的Kubernetes客户端二进制包。版本号`v1.14.1`表明这是Kubernetes项目在特定时间点发布的一个...
"kubernetes-client-darwin-amd64.tar.gz" 是一个针对苹果 macOS 操作系统(Darwin)的AMD64架构的Kubernetes客户端安装包。这个压缩包包含了运行在该平台上与Kubernetes集群通信所需的所有文件。 **Kubernetes基础...