您现在的位置是:首页 > 文章详情

kubernetes之Namespace详解

日期:2019-05-13点击:326

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命名空间不可删除。

原文链接:https://yq.aliyun.com/articles/702372
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章