Kubernetes 命名空间


命名空间为资源名称提供了额外的限定。当多个团队使用同一个集群,并且有可能发生名称冲突时,这很有用,它可以作为多个集群之间的虚拟墙。

命名空间的功能


以下是 Kubernetes 中 Namespace 的一些重要功能:

  • 命名空间有助于使用相同命名空间的 pod 到 pod 通信;

  • 命名空间是可以位于同一个物理集群之上的虚拟集群;

  • 它们在团队和他们的环境之间提供了逻辑分离。

创建命名空间


以下命令用于创建命名空间:

apiVersion: v1
kind: Namespce
metadata
    name: elk

控制命名空间


以下命令用于控制命名空间:

$ kubectl create –f namespace.yml ---------> 1
$ kubectl get namespace -----------------> 2
$ kubectl get namespace <Namespace name> ------->3
$ kubectl describe namespace <Namespace name> ---->4
$ kubectl delete namespace <Namespace name>

在上面的代码中:

  • 创建命名空间;

  • 列出所有可用的命名空间;

  • 获得一个特定的命名空间,其名称在命令中指定;

  • 描述有关该服务的完整详细信息;

  • 删除集群中存在的特定命名空间。

在服务中使用命名空间


以下是在服务中使用命名空间的示例文件:

apiVersion: v1
kind: Service
metadata:
    name: elasticsearch
    namespace: elk
    labels:
        component: elasticsearch
spec:
    type: LoadBalancer
    selector:
        component: elasticsearch
    ports:
    - name: http
        port: 9200
        protocol: TCP
    - name: transport
        port: 9300
        protocol: TCP

在上面的代码中,在服务元数据下使用相同的命名空间,名称为elk