kubernetes之Namespace详解

简介: Namespace Namespace是对一组资源和对象的抽象集合,比如可以用来将系统内部的对象划分为不同的项目组或用户组。常见的pods, services, replication controllers和deployments等都是属于某一个namespace的(默认是default),而node, persistentVolumes等则不属于任何namespace。

Namespace

Namespace是对一组资源和对象的抽象集合,比如可以用来将系统内部的对象划分为不同的项目组或用户组。常见的pods, services, replication controllers和deployments等都是属于某一个namespace的(默认是default),而node, persistentVolumes等则不属于任何namespace。

Namespace常用来隔离不同的用户,比如Kubernetes自带的服务一般运行在kube-system namespace中

何时使用多个Namespaces
当团队或项目中具有许多用户时,可以考虑使用Namespace来区分,如果是少量用户集群,可以不需要考虑使用Namespace,如果需要它们提供特殊性质时,可以开始使用Namespace。

Namespace为名称提供了一个范围。资源的Names在Namespace中具有唯一性。

Namespace是一种将集群资源划分为多个用途(通过 resource quota)的方法。

在未来的Kubernetes版本中,默认情况下,相同Namespace中的对象将具有相同的访问控制策略。

对于稍微不同的资源没必要使用多个Namespace来划分,例如同意软件的不同版本,可以使用labels(标签)来区分同一Namespace中的资源。

查询命名空间

[root@master ~]# kubectl get namespace
NAME STATUS AGE
c7n-system Active 30d
default Active 46d
eas Active 45d
kafka Active 38d
kube-public Active 46d
kube-system Active 46d
[root@master37 ~]#

注意:namespace包含两种状态”Active”和”Terminating”。在namespace删除过程中,namespace状态被设置成”Terminating”。

创建命名空间
1.直接创建命名空间

kubectl create namespace mynamespace

2.通过文件创建命名空间cat

[root@master37 ~]# cat mynamespace.yaml
apiVersion: v1
kind: Namespace
metadata:
name: mynamespace
[root@master37 ~]#

执行yaml文件生成mynamespace命名空间

[root@master37 ~]# kubectl apply -f mynamespace.yaml
namespace/mynamespace created
[root@master37 ~]#

注意:命名空间名称满足正则表达式a-z0-9?,最大长度为63位

删除命名空间

kubectl delete namespaces mynamespace

查看所有命名空间下pod

[root@master37 ~]# kubectl get pod --all-namespaces
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system coredns-86c58d9df4-d24nb 1/1 Running 1 46d
kube-system coredns-86c58d9df4-pq6qt 1/1 Running 1 46d
kube-system etcd-master37 1/1 Running 1 46d
kube-system filebeat-7mq2l 1/1 Running 12 38d
kube-system filebeat-cj6j9 1/1 Running 1 42d
kube-system filebeat-q594h 1/1 Running 2 42d
kube-system kube-apiserver-master37 1/1 Running 1 46d
kube-system kube-controller-manager-master37 1/1 Running 8 46d
kube-system kube-flannel-ds-amd64-8mwqh 1/1 Running 1 45d
kube-system kube-flannel-ds-amd64-cnj5c 1/1 Running 1 38d
kube-system kube-flannel-ds-amd64-gw6qv 1/1 Running 1 45d
kube-system kube-flannel-ds-amd64-trjqr 1/1 Running 7 45d
kube-system kube-proxy-65w67 1/1 Running 1 46d
kube-system kube-proxy-f7f5s 1/1 Running 2 45d
kube-system kube-proxy-jjb56 1/1 Running 1 45d
kube-system kube-proxy-vvdq4 1/1 Running 1 38d
kube-system kube-scheduler-master37 1/1 Running 8 46d
kube-system kubernetes-dashboard-57df4db6b-4kvfn 1/1 Running 1 45d
kube-system kubernetes-dashboard-57df4db6b-hxvlq 1/1 Running 2 45d
kube-system nfs-client-provisioner-759cc8b85c-ndd5f 1/1 Running 0 30d
kube-system prometheus-9d74f4d95-rn776 1/1 Running 0 5d1h
kube-system tiller-deploy-5d4955d66-72rhz 1/1 Running 0 32d
kube-system traefik-ingress-controller-4sxrh 1/1 Running 2 45d
kube-system traefik-ingress-controller-qxx9x 1/1 Running 1 45d
kube-system traefik-ingress-controller-w7z2c 1/1 Running 1 38d

删除一个namespace会自动删除所有属于该namespace的资源。
default和kube-system命名空间不可删除。

相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
云原生实践公开课
课程大纲 开篇:如何学习并实践云原生技术 基础篇: 5 步上手 Kubernetes 进阶篇:生产环境下的 K8s 实践 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
6月前
|
Kubernetes 网络协议 数据安全/隐私保护
Kubernetes 的核心概念:Pod、Service 和 Namespace 解析
Kubernetes 的核心概念:Pod、Service 和 Namespace 解析
145 1
|
6月前
|
JSON Kubernetes 数据格式
k8s集群namespace一直处于Terminating状态不释放解决办法
k8s集群namespace一直处于Terminating状态不释放解决办法
202 0
|
4月前
|
JSON Kubernetes Cloud Native
云原生|kubernetes|删除不掉的namespace 一直处于Terminating状态的解决方案
云原生|kubernetes|删除不掉的namespace 一直处于Terminating状态的解决方案
82 0
|
Kubernetes 容器 Perl
kubernetes强制删除pod、namespace等资源
kubernetes强制删除pod、namespace等资源
747 0
|
8月前
|
Kubernetes 容器
k8s的Namespace详解
k8s的Namespace详解
103 0
|
9月前
|
存储 Kubernetes 固态存储
【k8s 系列】k8s 学习十二,volume 、namespace
顺带说一下 volume 和 namespace ,咱们就开始分享一下 service 是什么
|
11月前
|
JSON Kubernetes 数据格式
kubernetes删除namespace卡Terminating
kubernetes删除namespace卡Terminating
110 0
|
Kubernetes 容器
k8s 删除命令空间namespace卡住解决方法
k8s 删除命令空间namespace卡住解决方法
|
存储 缓存 分布式计算
Fluid新魔法:跨Kubernetes Namespace共享数据集
Fluid帮助数据科学家优化数据访问。不同的数据科学家团队会在多个不同的Namespace中创建数据密集型作业,且这些作业将访问相同的数据集。多个数据科学家复用相同的数据集,特别是开源数据集。各数据科学家拥有自己独立的Namespace提交作业。如果对于每个Namespace运行缓存运行时并进行缓存预热,会造成缓存资源浪费和作业启动延迟问题。
439 0
Fluid新魔法:跨Kubernetes Namespace共享数据集
|
JSON Kubernetes 数据格式
k8s namespace 一直处于 Terminating 状态的解决方法
k8s namespace 一直处于 Terminating 状态的解决方法
207 0