1、什么是K8s的namespace?
答:
是集群级别的逻辑隔离单元,可为多个用户,通过资源配额划分集群资源,解决多团队、多项目共享集群时的资源冲突和权限隔离问题
同一个Namespace里,资源的名字必须唯一
一个pod不能跨命名空间,只能在这个命名空间里起作用,在内部有唯一的IP地址
外部想要访问pod时(如Nginx),如何确定其命名空间:服务发现
用kubectl get pod时查看的是默认的命名空间中的pod,默认命名空间改成哪个看哪个
删除 namespace 会删除其下所有资源
docker的ns:物理层面的强隔离,隔离进程、网络、文件系统,是容器能独立运行的根基;
k8s的ns:是给集群资源打分组标签。只隔离资源对象:Pod、Deployment、Service、ConfigMap等;不隔离底层进程、网络、CPU内存硬件。
2、系统默认创建了哪几个namespace?
答:
default:默认的,没指定空间时Pod这类资源放在这
kube-node-lease:用来存节点的租约信息,lease 保证 kubelet 可以向 api-server 发送心跳,以便控制面能够检测到节点故障。
kube-public:公共的,所有人都能读取,留给集群使用,使整个集群都能看到某些资源,通常用于存放集群级别的公共资源(如ConfigMap)
kube-system:用于创建系统对象




