首页 > 其他分享 >k8s命名空间和资源限制

k8s命名空间和资源限制

时间:2023-07-07 16:32:12浏览次数:55  
标签:master1 限制 namespace nginx 命名 pod k8s cpu

什么是命名空间

Kubernetes 支持多个虚拟集群,它们底层依赖于同一个物理集群。 这些虚拟集群被称为命名空间。 命名空间namespace是k8s集群级别的资源,可以给不同的用户、租户、环境或项目创建对应的命名空间,例如,可以为test、devlopment、production环境分别创建各自的命名空间。

namespace应用场景

命名空间适用于存在很多跨多个团队或项目的用户场景。对于只有几到几十个用户的集群,根本不需要创建或考虑命名空间

namespace操作

#创建
[root@pengfei-master1 pod]# kubectl create ns test

k8s命名空间和资源限制_运维

创建namespace

#查看

[root@pengfei-master1 pod]# kubectl get ns  #namespace 简写
NAME              STATUS   AGE
default           Active   5d7h
kube-node-lease   Active   5d7h
kube-public       Active   5d7h
kube-system       Active   5d7h
test              Active   12s

#删除

[root@pengfei-master1 pod]# kubectl delete ns test

namespace资源限额

如何对命名空间进行限额

查看帮助

帮助文档

[root@pengfei-master1 ~]# kubectl explain quota

限制命名空间cpu和内存、请求cpu和内存

#查看资源限制帮助
[root@pengfei-master1 ~]# kubectl explain quota

k8s命名空间和资源限制_运维_02

APIVersion 定义了对象的版本 kind 是表示此对象所代表的 REST 资源的字符串值。服务器可以根据客户端提交请求的端点来推断它。不能更新。采用驼峰命名法 metadata 对象的元数据 spec 定义所需的配额。它指定了命名空间中资源使用的限制


测试资源限制

#编写资源限制yaml
[root@pengfei-master1 namespace]# cat nginx_quota.yaml 
apiVersion: v1
kind: ResourceQuota
metadata:
  name: cpu-mem-quota
  namespace: test
spec:
  hard:
    requests.cpu: 2 #所有容器的CPU请求总额不得超过2 CPU
    requests.memory: 2Gi #所有容器的内存请求总额不得超过2GiB
    limits.cpu: 4 #所有容器的CPU限额总额不得超过4CPU
    limits.memory: 4Gi  #所有容器的内存限额总额不得超过4 GiB

#创建的ResourceQuota对象将在test名字空间中添加以下限制:
#每个容器必须设置内存请求(memory request),内存限额(memory limit),cpu请求(cpu request)和cpu限额(cpu limit)。
#ResouceQuota 对象是在我们的名称空间中创建的,并准备好控制该名称空间中的所有容器的总请求和限制.

创建一个nginx pod来验证限制

apiVersion: apps/v1
kind: Deployment #定义了资源对象类型为 Deployment
metadata:
  labels:
    app: nginx-test
  name: nginx
  namespace: default
spec:
  selector: #指定了用于选择Pod的标签(matchLabels)
    matchLabels:
      app: nginx
  template:#定义了创建Pod的模板,包括了Pod的标签(labels)
    metadata:
      labels:
        app: nginx #跟matchLabels指定的app: nginx必须一样
    spec:
      containers: #定义了要在 Pod 中运行的容器
      - name: nginx
        image: nginx:1.17.2
        imagePullPolicy: IfNotPresent #指定了镜像拉取策略为仅在本地不存在时才拉取
        ports:
        - containerPort: 80
        resources:
          requests:
            memory: 100Mi
            cpu: 4 #请求cpu超过了2Gi限额
          limits:
            memory: 4Gi
            cpu: 2

创建pod

[root@pengfei-master1 namespace]# kubectl apply -f pod_deployment.yaml 
The Deployment "nginx" is invalid: spec.template.spec.containers[0].resources.requests: Invalid value: "4": must be less than or equal to cpu limit

创建pod报错 提示cpu必须小于或等于限额,说明命名空间限制成功

下一节

pod高级实战:基于污点、容忍度,亲合度的多钟调度策略

标签:master1,限制,namespace,nginx,命名,pod,k8s,cpu
From: https://blog.51cto.com/ziyu/6654317

相关文章

  • 恢复oracle数据库DROP表误删除的数据 注意此时的表名称已经被重新命名,table_name和obj
    恢复oracle数据库DROP表误删除的数据注意此时的表名称已经被重新命名,table_name和object_name就是回收站中的存放表名。https://blog.csdn.net/qq_34253619/article/details/124434357数据恢复方法的原理是因为oracle数据库在删除表时会将删除信息存放于某虚拟“回收站”中而......
  • k8s部署的四种方法
    k8s(Kubernetes)是一个开源的容器编排平台,支持多种部署方式。常见的k8s部署方式包括:基于二进制文件、kubeadm工具、云服务提供商、容器镜像等方式。下面对这些k8s部署方式进行简要介绍:1.基于二进制文件的部署方式这种方式需要手动下载和安装k8s组件,包括kube-apiserver、kube......
  • 基于rancher搭建k8s
    快速搭建rancher-v用来挂载证书,如果没有证书,可以删除,默认使用rancher内置的自签证书dockerrun-d--namerancher--privileged--restart=unless-stopped\-p10080:80-p10443:443\-v/root/tmp/rancher.mb.com.crt:/etc/rancher/ssl/cert.pem\-v/root......
  • 选对方法,K8s 多集群管理没那么难
    作者:庄宇Kubernetes作为一项核心技术已成为现代应用程序架构的基础,将Kubernetes作为容器编排系统已发展为越来越多企业的必然选择。随着对云计算接受程度不断提高,以及企业规模和业务持续发展的共同驱动下,越来越多的企业在考虑或已经采用多云和混合云方案,以提升架构的灵活性和......
  • js 实现文件下载并重命名
    JavaScript实现文件下载并重命名 第一种是HTML官网中的方法<ahref="/images/liang.jpg"download="文件名称">HTML5中a标签提供了一个filename属性,可以下载成指定的download属性名称这种同源访问是没有问题的,但一跨域就不行了,试了其它方法,不是报跨域错误,就是在当......
  • 1、使用bat批量重命名文件
    有时我们想要将一个文件夹内的所有文件进行重命名,需要下载单独的工具。如果某些情况下没有网,而且着急重命名呢,这里给大家介绍一种方法,能够快速对文件进行重命名。使用bat批处理命令,批处理就是对某对象进行批量的处理,文件的扩展名为bat。文件如下:1、新建rename.xls文件填入以......
  • k8s中role和clusterrole的区别?
    在Kubernetes(K8s)中,Role和ClusterRole的区别,可以简单概括如下: -Role(角色)是在命名空间级别定义的,仅适用于特定的命名空间。-ClusterRole(集群角色)是在整个集群级别定义的,适用于整个集群的所有命名空间。 具体来说: -Role用于控制对命名空间内资源的访问和操作权限......
  • Red Hat 开始限制 RHEL 源码可得性
    导读RedHat宣布,其企业发行版RHEL(RedHatEnterprise Linux)相关源码现在只能通过CentOS Stream进行公开访问,但付费客户和合作伙伴仍可以通过RedHatCustomerPortal访问源代码。此举将加大社区发行版,如AlmaLinux、RockyLinux以及OracleLinux等提供1:1二进制兼容构建......
  • k8s进阶面试
    docker与k8s的区别,分别适用于什么场景?docker只负责生成容器,没有其他功能,但部署简单,方便测试等,k8s附带的有各种功能:探针、污点、资源限制、高可用等,如果生产中的服务达到一定规模且需保证全链路监控及高可用,k8s是最佳选择docker的底层实现原理?如何运行一个容器?六种命名空间的共......
  • Kubernetes(k8s) 资源限制:resources,LimitRange,ResourceQuota
    目录一.系统环境二.前言三.Kubernetes资源限制简介四.创建没有资源限制的pod4.1创建没有资源限制的pod4.2内存消耗测试五.使用resources字段配置资源限制5.1限制最低内存5.2限制最低CPU5.3限制最低CPU和最高内存5.4内存消耗测试六.使用LimitRange限制资源范围七.同时使用Lim......