Kubernetes 命名空间
命名空间将物理集群划分为多个虚拟集群,不同的组可以通过有效隔离共享相同的物理集群
命名空间:
一组名称,命名空间中对象名称是唯一的
确保可信身份认证的策略
为资源管理配置配额,提供不同级别的QoS
并非所有对象都在命名空间中,如属于整个集群的节点和持久卷
默认命名空间
default 包含在不指定任何命名空间的情况下创建对象
kube-system 包含由k8s系统创建的对象,通常由k8s系统创建的对象,通常由系统组件使用,如k8s仪表盘、k8s DNS
kube-public 存放每个人都可以访问的资源,目前主要应用是公开的ConfigMap,如集群信息
上下文context是集群信息、用户和命名空间的组合这一概念
资源配额
默认情况下,k8s中的pod不限制资源使用
ResourceQuota是资源对象,允许限制命名空间内可以消耗的资源,减少邻居干扰的发生
三种资源配额:
计算资源配额(CPU、内存)
存储资源配额(请求的存储、持久卷声明)
对象数量配额(Pod、RC、ConfigMap、Service、LoadBalancer)
已创建的资源不受新创建资源配额的影响,如果资源创建请求超过制定的ResourceQuota,资源无法启动
删除命名空间
kubectl delete namespace <namespace_name>
删除命名空间,则与该命名空间关联的所有资源将被清除
Kubeconfig
是一个文件,通过切换上下文在多个集群切换
使用kubectl config view 来查看设置
服务账户
与普通用户不同,服务账户(service account)为pod内的进程使用,以联系Kubernetes API服务器
默认下,k8s集群会为不同的需求创建不同的服务账户
k8s在每个命名空间中创建一个默认服务账户,如创建容器期间未创建,则使用默认账户
认证与授权
认证:验证用户身份并检查用户是否确实是他们声称的
授权:检查用户所具有的权限
k8s支持多种不同的认证和授权模块
API服务器访问控制