K8S 命名空间 (namespace)
命名空间 (namespace)
Namespace是对一组资源和对象的抽象集合.
常见的 pod, service, deployment 等都是属于某一个namespace的
(默认是 default)
不是所有资源都属于namespace,如nodes, persistent volume, namespace 等资源则不属于任何 namespace
一、查看namespace
kubectl get namespaces # namespaces可以简写为namespace或ns
[root@master ~]# kubectl get namespaces NAME STATUS AGE default Active 2d6h # 所有未指定 Namespace的对象都会被默认分配在default命名空间 kube-node-lease Active 2d6h kube-public Active 2d6h # 此命名空间下的资源 可以被所有人访问 kube-system Active 2d6h # 所有由Kubernetes 系统创建的资源都处于这个命名空间
二、查看namespace里的资源
使用kubectl get all --namespace=命名空间名称可以查看此命名空间 下的所有资源
kubectl get all --namespace=kube-system
使用kubectl get 资源类型 --namespace=命名空间名称可以查看此命名 空间下的对应的资源
kubectl get pod --namespace=kube-system
三、创建namespace
1.命令创建
kubectl create namespace ns1
kubectl get ns
2.YAML文件创建
k8s中几乎所有的资源都可以通这YAML编排来创建
可以使用kubectl edit 资源类型 资源名编辑资源的YAML语法
kubectl edit namespace ns1
# Please edit the object below. Lines beginning with a '#' will be ignored, # and an empty file will abort the edit. If an error occurs while saving this file will be # reopened with the relevant failures. # apiVersion: v1 kind: Namespace metadata: creationTimestamp: "2021-02-08T14:55:00Z" name: ns1 #此处修改 resourceVersion: "17578" selfLink: /api/v1/namespaces/ns1 uid: 9dfae471-6a1d-11eb-9a72-000c2936bb86 spec: finalizers: - kubernetes status: phase: Active
也可使用kubectl get 资源类型 资源名 -o yaml来查看
kubectl get ns ns1 -o yaml
还可通过kubectl explain 资源类型来查看语法文档
3.查看namespace相关语法参数
kubectl explain namespace
4.查看namespace下级metadata的相关语法参数
kubectl explain namespace.metadata
5.查看namespace下级metadata再下级name的相关语法参数
kubectl explain namespace.metadata.name
6.编写创建namespace的YAML文件
vim create_ns2.yml
apiVersion: v1 # api版本号 kind: Namespace # 类型为namespace metadata: # 定义namespace的元 数据属性 name: ns2 # 定义name属性为ns2
7.使用kubctl apply -f应用YAML文件
kubectl apply -f create_ns2.yml
kubectl get ns
四、删除namespace
注意:
删除一个namespace会自动删除所有属于该namespace的资源(类似 mysql中drop库会删除库里的所有表一样,请慎重操作)
default,kube-system,kube-public命名空间不可删除
1.命令删除
kubectl delete namespace ns1
kubectl get ns
2.YAML文件删除
kubectl delete -f create_ns2.yml
kubectl get ns
- K8S从懵圈到熟练 - 我们为什么会删除不了集群的命名空间?
- PHP命名空间(Namespace)的使用详解
- 命名空间std,using namespace std
- PHP命名空间(Namespace)的使用详解
- PHP中命名空间(namespace)的使用方法
- NameSpace命名空间的学习
- 你所忽视的jQuery on事件 Event.namespace 添加命名空间
- 理解namespace(命名空间)
- JAVA类装载器classloader和命名空间namespace
- thinkphp autoload 命名空间自定义 namespace
- [转]Java的类装载器(Class Loader)和命名空间(NameSpace)
- 浅谈几种常见语言的命名空间(Namespace)
- namespace命名空间的使用
- PHP命名空间namespace的定义方法详解
- 《设计模式:基于C#的工程化实现及扩展》学习笔记 02 准备篇 -- Namespace(命名空间)
- Ext.namespace 命名空间的解析
- C++ 命名空间namespace .
- C++命名空间 namespace的作用和使用解析
- C++ 命名空间namespace
- C++命名空间 namespace的作用和使用解析