Kubernetes Namespace

Namespace(命名空间)是Kubernetes系统中另一个非常重要的概念,Namespace在很多情况下用于实现多租户的资源隔离。Namespace通过将集群内部的资源对象"分配"到不同的Namespace中,形成逻辑上分组的不同项目、小组或者用户组,便于不同的分组在共享整个集群的资源的同时还能被分别管理

Kubernetes集群启动后,会创建一个名为"default"的Namespace

[root@master ~]# kubectl get namespaces 
NAME          STATUS    AGE
default       Active    5d

如果不特别指明Namespace,默认用户创建的Pod、RC、Service都将被系统创建到名为"default"的Namespace中 namespache_default

案例:创建一个名为development的namespache,添加3个pod到namespache中 首先定义一个namespace的yaml,可以和pod写在一起,我们这里分开写

apiVersion: v1
kind: Namespace
metadata:
  name: deployment

一旦创建了Namespace,我们创建资源对象时就可以指定这个资源对象属于哪个Namespache </br> 创建Namespache

[root@master ~]# kubectl create -f namespache.yaml 
namespace/deployment created

创建Pod指定Namespache为deployment,创建完成我们可以查看一下

[root@master ~]# kubectl get namespaces 
NAME          STATUS    AGE
default       Active    5d
deployment    Active    1m
kube-public   Active    5d
kube-system   Active    5d

创建加入Namepcae的Pod

[root@master ~]# kubectl create -f namespache_nginx.yaml 
deployment.apps/demo-deployment created

Pod的yaml如下:

[root@master ~]# cat namespache_nginx.yaml 
apiVersion: apps/v1beta1
kind: Deployment
metadata:
  name: abcdocker1
  namespace: deployment
spec:
  replicas: 3
  selector:
    matchLabels:
      app: abcdocker
  template:
    metadata:
      labels:
        app: abcdocker
    spec:
      containers:
      - name: nginx
        image: daocloud.io/library/nginx:1.13.0-alpine
        imagePullPolicy: IfNotPresent
        ports:
        - containerPort: 800

提示我们已经执行成功,我们现在执行命令查看

namespache_create

默认default下面已经找不到我们创建的项目,需要加上--namespace=namespace名称

删除Namespache

$ kubectl delete namespaces new-namespace

提示:

  • [x] 1.删除一个namespace会自动删除所有属于该namespace的资源。
  • [x] 2.default和kube-system命名空间不可删除。
  • [x] 3.PersistentVolumes是不属于任何namespace的,但PersistentVolumeClaim是属于某个特定namespace的。
  • [x] 4.Events是否属于namespace取决于产生events的对象。

同时删除的时候也是同样的步骤 namespache_delete

总结: 当我们给每个租户创建一个namespace来实现多租户的资源隔离时、还能结合Kubernetes的资源配额管理,现在不同租户能占用的资源,例如CPU使用量、内存使用量等

Copyright © i4t.com 2019 all right reserved,powered by Gitbook该文件修订时间: 2020-02-25 08:23:01

results matching ""

    No results matching ""