NameSpace介绍
命名空间;
作用:多租户情况下,实现资源隔离
属于逻辑隔离,属于管理边界,不属于网络边界,可针对每个NameSpace做资源配额。
查看NameSpace
[root@k8s-master ~]# kubectl get namespace
NAME STATUS AGE
default Active 3d2h
kube-node-lease Active 3d2h
kube-public Active 3d2h
kube-system Active 3d2h
ns-monitor Active 46m
[root@k8s-master ~]# kubectl get ns
NAME STATUS AGE
default Active 3d2h
kube-node-lease Active 3d2h
kube-public Active 3d2h
kube-system Active 3d2h
ns-monitor Active 46m
ns为namespace的简写;
default:用户创建的pod默认在此命名空间
kube-public:所有用户均可访问,包括未认证的用户
kube-node-lease:kubernetes集群节点租约状态,
kube-system:kubernetes集群在使用
创建NameSpace
通过kubectl命令行创建
[root@k8s-master ~]# kubectl create namespace test
namespace/test created
[root@k8s-master ~]# kubectl get ns | grep test
test Active 15s
通过应用资源清单文件创建
准备资源清单文件
[root@k8s-master ~]# vim create-ns.yaml
[root@k8s-master ~]# cat create-ns.yaml
---
apiVersion: v1
kind: Namespace
metadata:
name: demons1
应用并查看
[root@k8s-master ~]# kubectl apply -f create-ns.yaml
namespace/demons1 created
[root@k8s-master ~]# kubectl get ns | grep demons1
demons1 Active 31s
删除NameSpace
删除命名空间时,命名空间中包含的所有资源对象同时都会被删除
通过kubectl命令行删除
[root@k8s-master ~]# kubectl delete namespace test
namespace "test" deleted
通过namespace资源清单文件删除
[root@k8s-master ~]# kubectl delete -f create-ns.yaml
namespace "demons1" deleted
当kubernetes无法删除namespace提示terminating
删除命名空间namespace经常遇到这个问题
1、检查该namespace下是否还有资源
[root@k8s-master ~]# kubectl get all --namespace=ns-monitor
2、删除资源
[root@k8s-master ~]# kubectl delete pods pod-demo --grace-period=0 --force
3、编辑namespace
[root@k8s-master ~]# kubectl edit ns ns-monitor namespace/ns-monitor edited
注释掉finalizers部分,保存即会删除该ns