kubernetes五大资源之Namespace(名称空间)

名称空间的作用

主要作用是用来实现多套环境的资源隔离或者多租户的资源隔离

租户的概念:买一个云服务器,我就是它的租户。

默认情况下kubenetes集群中的所有Pod都是可以相互访问的,但是实际环境中可能需要隔离不同的Pod那此时就可以将不同的Pod划分到不同的Namespace下

kubernetes通过将集群内部的资源分配到不同的Namespace中,可以形成逻辑上的“组”,以方便不同的组资源进行隔离使用和管理

可以通过kubernetes的授权机制将不同的Namespace交给不同的租户进行管理,这样就实现了多租户的资源隔离。

记录工作中结合kubernetes的资源配额机制限定不同的租户能占用的资源,例如CPU使用量、内存使用量等来实现租户可用资源的管理

就是即便某个pod发生资源泄露,也不能干涉到我的底层资源内存;cpu...

kubernetes在集群启动以后会默认创建几个Namespace。

#查看Namespace

[root@master ~]# kubectl get ns 

NAME              STATUS   AGE

default           Active   5d17h

kube-node-lease   Active   5d17h  #集群节点之间的心跳维护,v1.13开始引入

kube-public       Active   5d17h  #该命名空间下的资源可以被所有人访问,包括未认证的用户

kube-system       Active   5d17h  #所有由kubernetes系统创建的资源都处于这个命名空间这个在运行时候,需要查看这个下面的pod是否正常;正常才行

 #所有未指定的Namespace的对象都会被分配在default名称空间

#查看default空间下的pod资源

[root@master ~]# kubectl get pods -n default

NAME                     READY   STATUS    RESTARTS   AGE

nginx-696649f6f9-t4xm6   1/1     Running   0          5d17h

#查看kube-system空间下的pod资源

[root@master ~]# kubectl get pods -n kube-system(系统创建的system空间)

NAME                             READY   STATUS    RESTARTS   AGE

coredns-6955765f44-dzhkh         1/1     Running   0          5d17h

coredns-6955765f44-rn4ds         1/1     Running   0          5d17h

etcd-master                      1/1     Running   0          5d17h

kube-apiserver-master            1/1     Running   0          5d17h

kube-controller-manager-master   1/1     Running   7          5d17h

kube-flannel-ds-2p922            1/1     Running   0          5d17h

kube-flannel-ds-fz8bz            1/1     Running   0          5d17h

kube-flannel-ds-plfvb            1/1     Running   0          5d17h

kube-proxy-7k4lf                 1/1     Running   0          5d17h

kube-proxy-h485n                 1/1     Running   0          5d17h

kube-proxy-m45qq                 1/1     Running   0          5d17h

kube-scheduler-master            1/1     Running   5          5d17h


Namespace资源操作指令命令

查看命令

#查看所有Namespace信息

[root@master ~]# kubectl get ns

NAME              STATUS   AGE

default           Active   5d17h

kube-node-lease   Active   5d17h

kube-public       Active   5d17h

kube-system       Active   5d17h

#查看指定Namespace信息

[root@master ~]# kubectl get ns default

NAME      STATUS   AGE

default   Active   5d17h

#查看指定Namespace详细信息

[root@master ~]# kubectl describe ns default

Name:         default

Labels:       <none>

Annotations:  <none>

Status:       Active   #Active表示命名空间正在使用,Terminatind表示正在删除命名空间

No resource quota.    #针对于Namespace做的资源限制

No LimitRange resource. #针对于Namespace中的每个组件做的资源限制

工作中常常对此进行配置,限制底层硬件资源的获取。

创建命令

#创建Namespace

[root@master ~]# kubectl create ns dev

namespace/dev created

#查看指定Namespace

[root@master ~]# kubectl get ns dev

NAME   STATUS   AGE

dev    Active   34s

删除命令

#删除指定Namespace

[root@master ~]# kubectl delete ns dev

namespace "dev" deleted

配置文件形式创建Namespace

#通过yml文件创建Namespace

[root@master ~]# vim ns_dev.yml
apiVersion: v1

kind: Namespace

metadata:

 name: dev

#创建Namspace

[root@master ~]# kubectl create -f ns_dev.yml

#查看Namespace

[root@master ~]# kubectl get ns

NAME              STATUS   AGE

default           Active   5d18h

dev               Active   8s

kube-node-lease   Active   5d18h

kube-public       Active   5d18h

kube-system       Active   5d18h

#删除Namespace

[root@master ~]# kubectl delete -f ns_dev.yml

namespace "dev" deleted

删除由yml文件配置的namespace; kubectl delete -f ns_dev.yml

 

猜你喜欢

转载自blog.csdn.net/m0_72264240/article/details/130614743