K8S之Namespace的介绍和使用

Namespace的理论和实操

Namespace理论说明

命名空间定义

K8s支持多个虚拟集群,它们底层依赖于同一个物理集群。 这些虚拟集群被称为命名空间(Namespace)。

Namespace应用场景

Namespace是k8s集群级别的资源,可以给不同的用户、租户、环境或项目创建对应的命名空间。

例如,可以为devlopment、test、production环境分别创建各自的命名空间。

Namespace实操

创建、查看命名空间

创建一个Namespace为test

bash 复制代码
kubectl create ns test

查看Namespace

bash 复制代码
kubectl get ns

使用ResouceQuota 对Namespace做资源限额

在K8s集群中通过 ResouceQuota 对象定义每个Namespace的资源配额,从而实现资源消耗总量的限制。

ResouceQuota 有两个作用:

  • 可以按类型限制Namespace下所创建对象的数量
  • 限制所消耗计算资源的总量

示例说明:

创建ResouceQuota 对象,对 test 命名空间中添加以下限制:

只能建4个pod、每个容器必须设置内存请求、内存限额、cpu请求和cpu限额。

步骤:

1、创建ResouceQuota 对象

编写ResouceQuota 资源文件

bash 复制代码
vim namespace-quota.yaml
yaml 复制代码
apiVersion: v1
kind: ResourceQuota
metadata:
  name: mem-cpu-quota
  namespace: test  # 指定限制的命名空间名称
spec:
  hard:
    pods: "4"    
    requests.cpu: "2"    # 所有容器的CPU请求总额不得超过2 CPU
    requests.memory: 2Gi # 所有容器的内存请求总额不得超过2GiB
    limits.cpu: "4"      # 所有容器的CPU限额总额不得超过4CPU
    limits.memory: 4Gi   # 所有容器的内存限额总额不得超过4 GiB

创建ResouceQuota

bash 复制代码
kubectl apply -f namespace-quota.yaml

ResouceQuota 对象是在Namespace为test中创建的,并准备好控制该名称空间中的所有容器的总请求和限制。

bash 复制代码
kubectl get resourcequota -n test

2、创建Pod 对象

创建Pod 时候必须设置资源限额,否则创建失败

编写Pod 资源文件

bash 复制代码
vim pod-test.yaml
yaml 复制代码
apiVersion: v1
kind: Pod
metadata:
  name: pod-test
  namespace: test
  labels:
    app: tomcat-pod-test
spec:
  containers:
  - name:  tomcat-test
    image: tomcat-8.5-jre8:v1
    imagePullPolicy: IfNotPresent
    ports:
    - containerPort: 8080
    resources:
      requests:
        memory: "100Mi"
        cpu: "500m"
      limits:
        memory: "2Gi"
        cpu: "2"

创建Pod

bash 复制代码
kubectl apply -f pod-test.yaml

再看命名空间下的资源

bash 复制代码
kubectl get resourcequota -n test

更多ResouceQuota 的使用

官网文档:https://kubernetes.io/zh-cn/docs/concepts/policy/resource-quotas/

相关推荐
你是我的天晴9 小时前
k8s教程4:Kubernetes中的服务发现与负载均衡
kubernetes·服务发现·负载均衡
Java后端何哥9 小时前
Docker Compose 和 Kubernetes(k8s)区别
docker·容器·kubernetes
moxiaoran575311 小时前
Kubernetes(k8s)学习笔记(二)--k8s 集群安装
笔记·学习·kubernetes
KubeSphere13 小时前
云原生周刊:KubeSphere 平滑升级
kubernetes
晨埃LUO定14 小时前
【k8s系列4】工具介绍
云原生·容器·kubernetes
郝同学的测开笔记15 小时前
Kubernetes节点磁盘占用率过高:排查与清理实战
kubernetes
云逸001~15 小时前
Kubeflow 快速入门实战(二) - Pipelines / Katib / KServer
云原生·kubernetes·大模型·llm·mlops·kubeflow·kserver
掉头发的王富贵15 小时前
从零开始玩转 Kubernetes:一站式入门指南,带你快速掌握 K8s的核心组件
后端·容器·kubernetes
Connie145116 小时前
K8s使用LIRA插件更新安全组交互流程
安全·容器·kubernetes
merge不墨迹16 小时前
Kubernetes 创建 Jenkins 实现 CICD 配置指南
kubernetes·jenkins