Namespace(命名空间)

命名空间(Namespace)

命名空间(Namespace)是一种资源隔离机制,将同一集群中的资源划分为相互隔离的组。
命名空间可以在多个用户之间划分集群资源(通过资源配额)。
例如 我们可以设置开发、测试、生产等多个命名空间。
同一命名空间内的资源名称要唯一,但跨命名空间时没有这个要求。
命名空间作用域仅针对带有名字空间的对象,例如 Deployment、Service 等。
这种作用域对集群访问的对象不适用,例如 StorageClass、Node、PersistentVolume 等。

Kubernetes 会创建四个初始命名空间

  • default 默认的命名空间,不可删除,未指定命名空间的对象都会被分配到 default 中。
  • kube-system Kubernetes 系统对象(控制平面和 Node 组件)所使用的命名空间。
  • kube-public 自动创建的公共命名空间,所有用户(包括未经过身份验证的用户)都可以读取它。通常我们约定,将整个集群中公用的可见和可读的资源放在这个空间中。
  • kube-node-lease 租约( Lease)对象使用的命名空间。每个节点都有一个关联的 lease 对象,lease 是一种轻量级资源。lease对象通过发送心跳,检测集群中的每个节点是否发生故障。

使用 kubectl get lease -A 查看 lease 对象

#创建命名空间
kubectl create namespace dev
kubectl create ns dev # namespace 可以简写为 ns

#查看命名空间
kubectl get ns

#在命名空间内运行Pod
kubectl run nginx --image=nginx --namespace=dev
kubectl run my-nginx --image=nginx -n=dev

#查看命名空间内的Pod
kubectl get pods -n=dev

#查看命名空间内所有对象
kubectl get all

# 删除命名空间会删除命名空间下的所有内容
kubectl delete ns dev

#查看当前上下文
kubectl config current-context

#将dev设为当前命名空间,后续所有操作都在此命名空间下执行。
kubectl config set-context $(kubectl config current-context) --namespace=dev


# 切换回到default
# kubectl config set-context $(kubectl config current-context) --namespace=default

# 查看指定空间下的pod
 kubectl get pod -n default

安装 ns 插件

kubectl krew install ns

查看命名空间

k get ns

[docker@haima root]$ k get ns
NAME                   STATUS   AGE
default                Active   6d1h
kube-node-lease        Active   6d1h
kube-public            Active   6d1h
kube-system            Active   6d1h
kubernetes-dashboard   Active   178m
您在 /var/spool/mail/root 中有新邮件

切换命名空间

k ns kube-system

[docker@haima root]$ k ns kube-system
Context "minikube" modified.
Active namespace is "kube-system".

帮助

[docker@haima root]$ k ns --help
USAGE:
  kubectl ns                    : list the namespaces in the current context
  kubectl ns <NAME>             : change the active namespace of current context
  kubectl ns -                  : switch to the previous namespace in this context
  kubectl ns -c, --current      : show the current namespace
  kubectl ns -h,--help          : show this message
作者:海马  创建时间:2023-07-13 07:34
最后编辑:海马  更新时间:2024-03-24 09:51