Kubernetes命名空间

这篇文章主要讲述如何查看、使用和删除命名空间,还有如何使用Kubernetes的命名空间来细分集群中的应用。
准备工作

  1. 搭建好 Kubernetes 集群:使用Kubeadm搭建Kubernetes(1.13.1)集群
  2. 对 Kubernetes Pod,Service 和 Deployment有一个基本了解

命名空间列表

列出集群中所使用的命名空间

$ kubectl get namespaces
NAME          STATUS    AGE
default       Active    19d
kube-public   Active    19d
kube-system   Active    19d

Kubernetes启动时会默认初始化default、kube-public 和 kube-system 三个命名空间。

  • default:非 Kubernetes 系统创建的对象的默认命名空间
  • kube-public:该命名空间被自动创建,并且对所有用户(包括未授权用户)都是可读的。该命名空间一般留作集群使用,用于存放一些始终可以被整个集群访问、读取的公共资源。
  • kube-system:Kubernetes 系统所创建的对象的命名空间

命名空间概要

可以通过下面的命令查看命名空间的概要信息:

kubectl get namespaces 

或者通过下面的命令获取命名空间的详细信息:

kubectl describe namespaces 
Name:         kube-system
Labels:       
Annotations:  
Status:       Active

No resource quota.

No resource limits.

注意:详细信息中包含资源配额(如果存在)和资源限定范围。
资源配额用于追踪命名空间中资源的实验总和,并且允许集群使用者限定命名空间可以使用的硬性资源。
限定范围定义了命名空间中某种资源可以使用的最小和最大值。
命名空间有两种状态:

  • Active:命名空间可用
  • Terminating:命名空间正在被删除,不能用于存放新对象

创建命名空间

创建一个名为my-namespace.yaml的 YAML 文件,包含以下内容:

apiVersion: v1
kind: Namespace
metadata:
  name: 

然后执行:

kubectl create -f ./my-namespace.yaml

注意:命名空间的名称必须是一个DNS兼容的标签。

还有一个可选的字段finalizers,该字段用于设置一个观察者用于监听该命名空间的删除操作。如果你指定了一个不存在的finalizers,该命名空间会被创建,但删除时会卡在Terminating状态。

删除命名空间

kubectl delete namespaces 

注意:该命令会删除命名空间下的所有对象。
删除操作是异步的,所以在一段时间内你会看到命名空间处于Terminating状态。

你可能感兴趣的:(Kubernetes命名空间)