美文网首页Kubernetes
Kubernetes命名空间

Kubernetes命名空间

作者: 王勇1024 | 来源:发表于2019-04-11 15:51 被阅读0次

    这篇文章主要讲述如何查看、使用和删除命名空间,还有如何使用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 <name>
    

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

    kubectl describe namespaces <name>
    
    Name:         kube-system
    Labels:       <none>
    Annotations:  <none>
    Status:       Active
    
    No resource quota.
    
    No resource limits.
    

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

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

    创建命名空间

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

    apiVersion: v1
    kind: Namespace
    metadata:
      name: <insert-namespace-name-here>
    

    然后执行:

    kubectl create -f ./my-namespace.yaml
    

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

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

    删除命名空间

    kubectl delete namespaces <insert-some-namespace-name>
    

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

    相关文章

      网友评论

        本文标题:Kubernetes命名空间

        本文链接:https://www.haomeiwen.com/subject/cgptwqtx.html