2.namespace名称空间
1.什么是命名空间?
Kubernetes 支持多个虚拟集群,它们底层依赖于同一个物理集群。 这些虚拟集群被称为命名空间。
命名空间namespace是k8s集群级别的资源,可以给不同的用户、租户、环境或项目创建对应的命名空间,例如,可以为test、devlopment、production环境分别创建各自的命名空间。
2.namespace应用场景
命名空间适用于存在很多跨多个团队或项目的用户的场景。对于只有几到几十个用户的集群,根本不需要创建或考虑命名空间。
-
查看名称空间及其资源对象
k8s集群默认提供了几个名称空间用于特定目的,例如,kube-system主要用于运行系统级资源,存放k8s一些组件的。而default则为那些未指定名称空间的资源操作提供一个默认值。
使用kubectl get namespace可以查看namespace资源,使用kubectl describe namespace $NAME可以查看特定的名称空间的详细信息。 -
管理namespace资源
namespace资源属性较少,通常只需要指定名称即可创建,如“kubectl create namespace qa”。namespace资源的名称仅能由字母、数字、下划线、连接线等字符组成。删除namespace资源会级联删除其包含的所有其他资源对象。
3.namespacs使用案例分享
#创建一个test命名空间
[root@master1~]# kubectl create ns test
#切换命名空间,切换命名空间后,kubectl get pods 如果不指定-n,查看的就是kube-system命名空间的资源了。
[root@master1~]# kubectl config set-context --current --namespace=kube-system
#查看哪些资源属于命名空间级别的
[root@master1~]# kubectl api-resources --namespaced=true
4.namespace资源限额
namespace是命名空间,里面有很多资源,那么我们可以对命名空间资源做个限制,防止该命名空间部署的资源超过限制。(创建pod时候必须设置资源限额,否则创建失败)
- namespace.yaml
---
apiVersion: v1
kind: Namespace
metadata:
name: test
---
apiVersion: v1
kind: ResourceQuota
metadata:
name: mem-cpu-quota
namespace: test
spec:
hard:
requests.cpu: "2"
requests.memory: 2Gi
limits.cpu: "4"
limits.memory: 4Gi
#创建的ResourceQuota对象将在test名字空间中添加以下限制:
##每个容器必须设置内存请求(memory request) 所有容器的内存请求总额不得超过2GiB。
##内存限额(memory limit) 所有容器的内存限额总额不得超过4 GiB。
##cpu请求(cpu request) 所有容器的CPU请求总额不得超过2 CPU。
##cpu限额(cpu limit) 所有容器的CPU限额总额不得超过4CPU。
初学linux,每学到一点东西就写一点,如有不对的地方,恳请包涵!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
2018-02-27 磁盘、文件系统