本篇文章,所使用的任何镜像我都会发一个网盘链接,供大家下载学习!
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 一样会删除掉。