名称空间

查看名称空间

执行命令 kubectl get namespaces 可以查看名称空间

Kubernetes 安装成功后,默认有初始化了三个名称空间:

  • default 默认名称空间,如果 Kubernetes 对象中不定义 metadata.namespace 字段,该对象将放在此名称空间下
  • kube-system Kubernetes系统创建的对象放在此名称空间下
  • kube-public 此名称空间自动在安装集群是自动创建,并且所有用户都是可以读取的(即使是那些未登录的用户)。主要是为集群预留的,例如,某些情况下,某些Kubernetes对象应该被所有集群用户看到。

在执行请求时设定namespace

执行 kubectl 命令时,可以使用 --namespace 参数指定名称空间,例如:

kubectl run nginx --image=nginx --namespace=<您的名称空间>
kubectl get pods --namespace=<您的名称空间>
kubectl get pods -n <您的名称空间>

设置名称空间偏好

可以通过 set-context 命令改变当前 kubectl 上下文 的名称空间,后续所有命令都默认在此名称空间下执行。

kubectl config set-context --current --namespace=<您的名称空间>
# 验证结果
kubectl config view --minify | grep 'namespace:'

并非所有对象都在名称空间里

大部分的 Kubernetes 对象(例如,Pod、Service、Deployment、StatefulSet等)都必须在名称空间里。但是某些更低层级的对象,是不在任何名称空间中的,例如 nodes、persistentVolumes、storageClass 等

# 在名称空间里
kubectl api-resources --namespaced=true

# 不在名称空间里
kubectl api-resources --namespaced=false
posted @ 2020-07-30 17:24  哈喽哈喽111111  阅读(180)  评论(0编辑  收藏  举报