Namespace名称空间介绍
Namespace(名称空间)是一种用于对集群中的资源进行逻辑分组和隔离的机制。它可以将集群中的资源划分为不同的命名空间,以便在同一集群中运行多个应用程序或服务时提供隔离和组织。
不同 Namespace 的资源默认情况下是相互隔离的,即一个 Namespace 中的资源无法直接访问另一个 Namespace 中的资源。这意味着一个 Pod、Service 或其他资源只能在它们所属的 Namespace 内进行访问。
案例:以一个namespace的创建和删除演示命令用法
查看集群中所有的 namespace
kubectl get nsdefault名称空间
default 作为集群默认的名称空间,在创建资源时,如果没有指定命名空间的情况下,资源对象将被自动分配在default中
#查看default中的Pod信息
kubectl get podkube-node-lease名称空间
kube-node-lease 用于管理集群节点租约(node lease),用于跟踪集群每个节点的健康状态,kubelet 负责定期向 kube-node-lease 命名空间中的节点发送心跳信号,以表明节点的健康状态。如果节点的心跳信号中断,控制平面将认为节点不再可用,并采取相应的措施,例如重新调度Pod到其他可用的节点上。
#查看kube-node-lease中的lease(租约)信息
kubectl get lease -n kube-node-lease
参数说明:
NAME //节点名称
HOLDER //持有该租约的节点
AGE //租约节点存在的时间kube-public名称空间
kube-public 用于存储集群的公共信息,其中包含集群的 CA证书、集群的元数据和配置信息( 集群的名称、版本、网络配置、存储配置等),这些资源是以 ConfigMap 和 Secret 的形式存储的。
#查看kube-public中的ConfigMap信息(ConfigMap中存储集群的CA证书)
kubectl get cm -n kube-public
#查看kube-public中的Secret信息(Secret中存储集群的元数据)
kubectl get secret -n kube-public提示:kube-public 空间中的资源对象和信息是只读的,不能直接进行修改或删除。它们由 k8s 集群组件自动管理和更新。
kube-system名称空间
kube-system 是集群系统级别的名称空间,用于托管和运行集群中核心组件( kube-apiserver、kube-controller-manager、kube-scheduler、kube-proxy、coredns ),除了核心的系统组件,该空间还用于托管集群插件和附加组件,如网络插件(例如 Calico、Flannel)、日志聚合器(如 Elasticsearch、Fluentd、Kibana)、监控工具(如 Prometheus、Grafana)等。
#查看kube-system中的Pod信息
kubectl get pod -n kube-system
#可以通过 all 可以查看名称空间中的Pods、Pod控制器、Service资源信息,而ConfigMap、Secret、PV、PVC 等资源无法通过 kubectl get all 命令显示
kubectl get all -n kube-system创建名称空间的方式
#创建一个名为dev的名称空间
kubectl create ns dev
kubectl get ns
#删除名称空间
kubectl delete -n dev
评论区