实战生产环境:最新K8s NameSpaces详解

何阳光 · · 978 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

本篇文章,所使用的任何镜像我都会发一个网盘链接,供大家下载学习!

yaml 请到我的github上下载学习!

github:https://github.com/heyangguang

有任何问题可以直接联系我的Email:heyangev@cn.ibm.com

namespaces官网

https://kubernetes.io/docs/co...

namespaces介绍

​ Namespaces简单来说就是可以用来放置Pod的组!如果资源不多的话,那么不需要使用namespaces。但如果资源一旦多起来,比如我们有web组件和database组件,那么我们就可以分别创建两个不同的namespaces来放置和管理我们的Pod。当然namespaces不仅仅这么简单!它还有可以通过磁盘配额可以实现多个用户之间划分群集资源的方法。

查看namespaces

1、查看全部namespaces

[root@master01 ~]# kubectl get namespaces
NAME              STATUS   AGE
default           Active   10h
kube-node-lease   Active   10h
kube-public       Active   10h
kube-system       Active   10h

Kubernetes以三个初始名称空间开头:

  • default 没有其他命名空间的对象的默认命名空间
  • kube-system Kubernetes系统创建的对象的命名空间
  • kube-public 此命名空间是自动创建的,并且所有用户(包括未经过身份验证的用户)都可以读取。此命名空间主要用于群集使用,以防某些资源在整个群集中可见且可公开读取。此命名空间的公共方面只是一个约定,而不是一个要求。

2、指定namespaces查看

[root@master01 ~]# kubectl get namespaces kube-system
NAME          STATUS   AGE
kube-system   Active   10h

3、指定namespaces查看详情

[root@master01 ~]# kubectl describe namespaces kube-system
Name:         kube-system
Labels:       <none>
Annotations:  <none>
Status:       Active

No resource quota.

No resource limits.

namespaces status有两个状态:

  • Active 命名空间正在使用中
  • Terminating 正在删除命名空间,不能用于新对象

创建namespaces

1、使用命令行创建

[root@master01 ~]# kubectl create namespace test
namespace/test created
[root@master01 ~]# kubectl get namespaces
NAME              STATUS   AGE
default           Active   10h
kube-node-lease   Active   10h
kube-public       Active   10h
kube-system       Active   10h
test              Active   10s

2、使用yaml创建

[root@master01 ~]# cat my-namespace.yaml
apiVersion: v1
kind: Namespace
metadata:
  name: yaml-test
[root@master01 ~]# kubectl create -f ./my-namespace.yaml
namespace/yaml-test created
[root@master01 ~]# kubectl get namespaces
NAME              STATUS   AGE
default           Active   10h
kube-node-lease   Active   10h
kube-public       Active   10h
kube-system       Active   10h
test              Active   114s
yaml-test         Active   5s

删除namespaces

1、使用命令行删除

[root@master01 ~]# kubectl delete namespaces test
namespace "test" deleted
[root@master01 ~]# kubectl get namespaces
NAME              STATUS   AGE
default           Active   10h
kube-node-lease   Active   10h
kube-public       Active   10h
kube-system       Active   10h
yaml-test         Active   99s

2、使用yaml删除

[root@master01 ~]# kubectl delete -f ./my-namespace.yaml
namespace "yaml-test" deleted
[root@master01 ~]# kubectl get namespaces
NAME              STATUS   AGE
default           Active   11h
kube-node-lease   Active   11h
kube-public       Active   11h
kube-system       Active   11h

​ 此删除是异步的,因此有一段时间将看到Terminating状态中的命名空间。此删除会级联删除,如果namespaces下面有运行Pod一样会删除掉。


有疑问加站长微信联系(非本文作者)

本文来自:Segmentfault

感谢作者:何阳光

查看原文:实战生产环境:最新K8s NameSpaces详解

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

978 次点击  
加入收藏 微博
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传