Kubernetes中PV与PVC的关系?
bash
复制代码
PV(持久化卷) -> 资源存储池
PVC(持久化卷声明) -> 工单审批请求
PV 与 PVC 一对一绑定,独占使用,互斥关系
通过 PVC 解耦 Pod资源 --> Pod 只感知PVC名称,不关心背后的 PV 是 NFS/Ceph/云盘
Role和ClusterRole的区别是什么?什么时候用哪个?
bash
复制代码
Role、ClusterRole 是 k8s RBAC(基于角色的访问控制)体系中的两个核心资源,用于定义规则(ps:可以执行哪些操作?针对哪些资源?)
Role
1.作用域:单个NameSpace命名空间级别
2.可授权的资源:Pod/Service/Deployment/...
3.绑定方式:RoleBinding绑定
ClusterRole
1.作用域:整个CLuster集群级别
2.可授权的资源:Node/PV/NameSpace/...
3.绑定方式:ClsuerRoleBinding
我认为选择 Role 还是 ClusterRole 都要遵循最小权限的原则,优先使用Role缩小作用域。只有当必要时才选择ClusterRole,导致权限过度扩散。
RoleBinding和ClusterRoleBinding分别绑定了什么?
bash
复制代码
RoleBinding 和 ClusterRoleBinding 都是将"角色"与"主体"绑定在一起的桥梁。
主体(Subject)如下:
User - 用户
Group - 用户组
ServiceAccount - 服务账号
RoleBinding --> 对标"局部变量"
可以绑定 Role 或 ClusterRole
ClusterRoleBinding --> 对标"全局变量"
只能绑定 ClusterRole
ConfigMap和Secret的核心区别是什么?
bash
复制代码
ConfigMap 和 Secert 都是 K8s 中用于将配置信息与 Pod资源 解耦的资源对象。
核心区别在于:
1.安全等级
ConfigMap ->存储非敏感数据(比如:配置文件/环境变量)
Secert -> 存储敏感数据(比如:密码/证书/Token)
2.处理方式
明文读写
Base64编码(非加密,)
3.访问控制
Secert 推荐 RBAC 管控,etcd 中开启加密存储
ConfigMap 一般不舍严格要求
什么是热更新?
bash
复制代码
热更新:
在不重启或者不重新部署的情况下,动态加载新的配置的能力,核心目标实现 零停机生效。
启用的必要条件:
1.数据源支持动态同步(Volume挂载)
2.进程支持运行时重载配置