29|集群管理:如何用名字空间分隔系统资源?
为什么要有名字空间
- 深入了解
- 翻译
- 解释
- 总结
Kubernetes集群管理中的名字空间是一种重要的资源隔离机制,可以将集群划分为独立的区域,避免资源冲突和争夺。本文介绍了名字空间的作用和使用方法,以及如何通过资源配额对名字空间进行管理。名字空间可以通过`kubectl create`命令轻松创建,同时也可以为名字空间设置资源配额,限制CPU、内存、存储容量等资源的使用。文章深入浅出地介绍了名字空间和资源配额的概念和使用方法,对于Kubernetes集群管理的实际操作具有很强的指导意义。 在名字空间加上资源配额限制后,要求所有在其中运行的Pod都必须声明资源需求,否则无法创建。为了简化对象的创建工作,可以使用`LimitRange`对象为容器或Pod添加默认的资源配额,避免反复设置配额的烦恼。通过示例代码和命令演示了如何创建名字空间和资源配额对象,并展示了资源配额对名字空间中对象数量的限制。此外,文章还提到了在生产环境中使用名字空间管理集群资源的重要性,以及设置资源配额应遵循的基本原则。 总的来说,本文通过介绍名字空间和资源配额的概念、使用方法以及实际操作示例,为读者提供了深入理解Kubernetes集群管理中资源隔离和管理的指导,对于需要在生产环境中使用Kubernetes进行资源规划和管理的技术人员具有重要参考价值。
《Kubernetes 入门实战课》,新⼈⾸单¥59
全部留言(14)
- 最新
- 精选
- 小宝Q1: namespace属于逻辑隔离,生产上体现可以划分为基础中间件命名空间,其余按照业务系统划分。 Q2: 按照目前实施一些经验,机器通常会采用cpu与内存形成一个固定比例,例如8core,16G, 16core,32G, 然后会建议应用软件采用这个比例去配置request,limited, 同时要求,request尽可能小些,可以容纳下更多应用,超过一些限额后,集群具备自动化弹性扩容,形成“超卖”。同理,资源配额也是建议这样的比例。
作者回复: great
2022-09-02归属地:北京14 - 小林子老师,不同 namespace 的 service,pod 可以通信吗
作者回复: 当然是可以的,像apiservier就在kube-system。
2022-08-29归属地:上海29 - 小江爱学术+1 跪求加餐一个k8s里的rbac。
作者回复: rbac在我的实际工作中用的还真不多,虽然大概了解一些,但感觉理解的还不是太深刻,可能要多等等了,sorry。
2022-11-11归属地:上海33 - 会飞的蚂蚁老师,default跟defaultRequest ,是当pod资源达到defaultRequest后自动“扩容”到default吗?request.cpu跟limits.cpu也是如此?
作者回复: 不是,这两个属性是默认的资源限制,不是扩容,可以用explain看它们的详细解释。
2023-05-25归属地:广东1 - peter请教老师几个问题: Q1:最后能否以加餐形式出一期面试题讲解? 群里有同学去面试k8s挂了,能否讲几个典型面试题? Q2:limitRange的定义不矛盾吗? 文中“容器的资源上限是 0.5 的 CPU 和 100MB 内存,每个 Pod 的最大使用量是 0.8 的 CPU 和 200MB 内存。”, 前面部分是上限,后面部分是最大值,后边的大于前面的啊,不矛盾吗? Q3:k8s的namespace和容器的namespace有什么区别?
作者回复: 1.这个感觉有点勉强,我还真没面过Kubernetes相关的岗位,而且Kubernetes的知识面太广了,难免挂一漏万。 2.不矛盾,显然会取两个限制的较小的那个。 3.Kubernetes的namespace是一个逻辑管理的概念,而容器的namespace是一个实打实的隔离技术,可以再看前面的复习一下。
2022-08-29归属地:北京21 - Lorry请教一下,从前章节都是直接在api对象的yaml文件中指定namespace,似乎并不用手动先创建namespace;这种直接在api对象的中指定,和本节讲的首先通过create ns,然后再在api对象的yaml文件中做指定,有什么区别吗?
作者回复: 必须要先创建namespace,否则在YAML 里指定就回找不到,之前是因为namespace原本就有。
2023-02-04归属地:四川 - zhou老师request.cpu跟limits.cpu有什么区别?我认为只用一个就行了
作者回复: 一个是基本运行的,一个是应对突发的最大上限,用处还是不一样的。
2023-01-05归属地:上海2 - 邵涵“其他 API 对象配额,使用 count/name.group 的形式,比如 count/jobs.batch、count/deployments.apps” 老师,请问这里的“group”是指什么?是kubectl api-resources中APIVERSION列中的内容吗?比如deployment的APIVERSION是“apps/v1”,job和cronjob的APIVERSION是“batch/v1”
作者回复: 是的,理解的很对,因为api是按逻辑功能分组的。
2022-10-25归属地:上海 - benny老师,请问默认的容器资源限制比较少。如何针对单个容器调大资源呢?
作者回复: 28讲里用resources字段可以调整容器的资源,是不是就可以了。
2022-09-16归属地:北京 - Frank老师,K8S默认一个节点上的pod调度数是110。 这个是用namespace限制的吗?
作者回复: 和namespace无关,是Kubernetes对节点的限制,应该也是可以改的。
2022-09-10归属地:北京2