Namespace

这里的命名空间与容器中的命名空间不是一类东西,这里说的命名空间只是针对Kubernetes资源进行逻辑分组的东西,并且没有进行真实的隔离,比如不同命名空间中的Pod若知道对方的IP,在网络插件允许的情况下,也是可以互相访问的。

对命名空间需求

通常,我们选择在多租户环境下使用命名空间,不同的租户使用各自的命名空间,不同的命名空间中可以创建同名的资源。

管理命名空间

查看

可以通过ns查看现有的Namespace:

kubectl get ns

通过-n可以查看指定Namespace中的资源。例如查看custom-namespace中的Service资源:

kubectl get services -n custom-namespace

创建

创建命名空间可以通过两种方式实现:

  1. 通过YAML文件创建;

  2. 通过命令创建;

通过YAML创建

因为Namespace也是一种资源,因此可以将Kind设置为该资源类型即可。例如,创建一个名为custom-namespace的命名空间:

apiVersion: v1
kind: Namespace    # 资源类型为Namespace
metadata:
  name: custom-namespace    # 命名空间的名字

然后通过kubectl apply -f xxx.yaml就可以生成对应资源。

通过命令创建

可以使用kubectl create命令的方式创建命名空间:

kubectl create namespace custom-namespace

删除

可以通过命令行的方式删除Namespace,但是需要注意的是,这种删除方式会同时删除这个命名空间中的所有的资源。例如删除custom-namespace这个命名空间:

kubectl delete ns custom-namespace

Last updated

Was this helpful?