《Kubernetes权威指南》读书问题汇总(二)(持续更新)

  1. K8s授权策略有哪些?默认是什么策略?如何设置?
    共有6种授权策略(部分可同时配置):
    ①AlwaysDeny:总是拒绝,用于测试
    ②AlwaysAllow:总是允许,集群不需要授权流程时使用
    ③ABAC(Attribute-Based Access Control):基于属性的访问控制,使用用户配置的授权规则对用户请求进行匹配和控制
    ④RBAC(Role-Based Access Control):基于角色的访问控制
    ⑤Webhook:通过调用外部REST服务对用户进行授权
    ⑥Node:用于对kubelet发出的请求进行访问控制
    默认策略为:AlwaysAllow
    设置方式:通过API Server启动参数–authorization-mode设置
    本人使用的环境为RBAC+Node授权策略。

  2. K8s鉴权流程是什么?
    ①API Server收到请求后读取请求中的数据,生成一个访问策略对象,若未携带访问策略对象中所需的属性数据,则根据属性类型填入默认值
    ②将该访问策略对象与授权策略文件中的访问策略逐条匹配
    ③如果至少有一条匹配成功,则请求被鉴权,否则终止API调用流程,返回错误码

  3. 为什么RBAC为Kubeadm安装默认选项(RBAC优点)?
    ①对集群资源和非资源权限完整覆盖
    ②完全由API资源对象完成,并可以使用kubectl对API进行操作(Role、ClusterRole、RoleBinding、ClusterRoleBinding)
    ③无需重启API Server即可调整

  4. Role、ClusterRole、RoleBinding、ClusterRoleBinding的作用?

    Role:声明namespace范围内,该role的权限规则
    ClusterRole:声明集群范围内,该clusterrole的权限规则
    RoleBinding:用于为user、group、service account绑定权限规则,包括Role、ClusterRole
    ClusterRoleBinding:同上,但只能绑定ClusterRole

  5. secret作用和使用方式?
    作用:保管私密数据,且便于使用和分发
    使用方式:三种
    ①通过Pod指定的serviceaccount使用
    ②通过挂载进Pod使用,挂载后文件名为data.{key},文件内容为BASE 64解码后的{value}(secret中data区域下的values都需要用BASE64编码)
    ③通过spe.ImagePullSecrets使用,用于拉取镜像

  6. PodSecurityPolicy的作用是什么?
    控制Pod对集群资源的使用(网络、用户、权限、宿主机资源、Linux能力等)

  7. psp如何使用?
    ①开启apiserver的–enable-admission-plugins=PodSecurityPolicy,表示使用该准入器
    ②创建psp资源对象
    ③创建role或clusterrole并在resource中添加psp资源对象及创建的psp对象名
    ④创建rolebinding或clusterrolebinding,将role或clusterrole与user/group/sa进行绑定
    ⑤在pod资源对象或container中添加securitycontext,用于声明pod或容器的上下文规则
    ⑥在使用绑定的user/group/sa对pod资源对象进行操作时,admission controller会将psp和securitycontext进行核对,不符合则不允许创建

  8. PodSecurityPolicy和SecurityContext的关系?
    •SecurityContext 是 Pod 中的一个字段,而 PSP 是一个独立的资源类型。
    •SecurityContext 是 Pod 自身对安全上下文的声明;
    而 PSP 则是强制实施的——不合规矩的 Pod 无法创建。
    PSP 的用法和 RBAC 是紧密相关的,换句话说,应用 PSP 的基础要求是:
    •不同运维人员的操作账号需要互相隔离并进行单独授权。
    •不同命名空间,不同 ServiceAccount 也同样要纳入管理流程。
    PSP 环境下,运维人员或者新应用要接入集群,除了 RBAC 设置之外,还需要声明其工作范围所需的安全策略,并进行绑定,才能完成工作。
    PSP 的官方文档中提到,PSP 是通过 Admission Controller 启用的,并且注明了:启用 PSP 是一个有风险的工作,未经合理授权,可能导致 Pod 无法创建。

  9. flannel实现集群内部pod间通信的原理?
    ①Flannel创建名为flannel0的网桥用于连接docker0与flanneld服务进程
    ②flanneld进程连接etcd来管理可分配ip地址段资源,并监控etcd中的pod实际ip,根据ip在内存中生成pod节点路由表
    ③flanneld连接docker0和物理网络并使用pod节点路由表,将docker0发送至flanneld的数据包进行包装,利用物理网络连接,将数据包投递至目标flanneld上
    ④通过源flanneld封包、目标flanneld解包,目标pod连接的docker0收到的为原始数据,所以容器对于flanneld无感知

  10. flannel如何分配不同node上的pod ip?
    flannel使用etcd作为集中存储,因此避免ip冲突。当flannel分配好地址段后,会修改docker的启动参数将分配给该pod的ip传递进去

  11. 当新节点(如虚拟机)加入K8s集群时,得到新节点的信息的工作流程是什么?节点信息包括什么?

  12. 当新节点(如虚拟机)加入K8s集群时,得到新节点的信息的工作流程是什么?节点信息包括什么?

  13. 当新节点(如虚拟机)加入K8s集群时,得到新节点的信息的工作流程是什么?节点信息包括什么?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值