Kubernetes:命名空间(namespace 创建、删除,pod中设置namespace,命名空间首选项设置set-context --current --namespace)

本文深入探讨了Kubernetes中命名空间的概念,解释了其在多团队、多项目环境中的作用,以及如何创建、管理和删除命名空间。同时,文章还详细介绍了命名空间与资源配额、访问控制策略的关系,并提供了实例演示。

参考:https://kubernetes.io/zh/docs/concepts/overview/working-with-objects/namespaces/

一,什么是命名空间?

Kubernetes 支持多个虚拟集群,它们底层依赖于同一个物理集群。 这些虚拟集群被称为命名空间。你可以认为namespaces是你kubernetes集群中的虚拟化集群。在一个Kubernetes集群中可以拥有多个命名空间,它们在逻辑上彼此隔离。 他们可以为您和您的团队提供组织,安全甚至性能方面的帮助!

二,何时使用多个命名空间?

1:命名空间适用于存在很多跨多个团队或项目的用户的场景。

对于只有几到几十个用户的集群,根本不需要创建或考虑命名空间。当需要名称空间提供的功能时,请开始使用它们。

2:命名空间为名称提供了一个范围。

资源的名称需要在命名空间内是唯一的,但不能跨命名空间。命名空间不能相互嵌套,每个 Kubernetes 资源只能在一个命名空间中。

3:命名空间是在多个用户之间划分集群资源的一种方法(通过资源配额)。

4:在 Kubernetes 未来版本中,相同命名空间中的对象默认将具有相同的访问控制策略。

5:不需要使用多个命名空间来分隔轻微不同的资源,例如同一软件的不同版本:使用 labels 来区分同一命名空间中的不同资源。

三,使用命名空间

3.1 查看命名空间

kubectl get namespace
NAME              STATUS   AGE
default           Active   39m
kube-public       Active   39m
kube-system       Active   39m

也可以使用 ns 代替,效果与namespace 一样

kubectl get ns

Kubernetes 会创建三个初始命名空间:

default 没有指明使用其它命名空间的对象所使用的默认命名空间

kube-system Kubernetes 系统创建对象所使用的命名空间

kube-public 这个命名空间是自动创建的,所有用户(包括未经过身份验证的用户)都可以读取它。这个命名空间主要用于集群使用,以防某些资源在整个集群中应该是可见和可读的。这个命名空间的公共方面只是一种约定,而不是要求。

3.2 创建命名空间

kubectl create namespace oopxiajun-test
namespace/oopxiajun-ns-test created

当然也可以使用yaml来处理

vim kube-ns-test.yaml

kind: Namespace         #类型为Namespace
apiVersion: v1          #版本号为v1
metadata:
  name: oopxiajun-ns-test
  labels:
    name: label-test-v1
kubectl apply -f kube-ns-test.yaml 
namespace/oopxiajun-ns-test created

查看命名空间

kubectl get namespace

NAME   
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值