【Kubernetes】常见面试题汇总(十四)
目录
42.简述 Kubernetes 如何保证集群的安全性?
43.简述 Kubernetes 准入机制?
42.简述 Kubernetes 如何保证集群的安全性?
Kubernetes 通过一系列机制来实现集群的安全控制,主要有如下不同的维度:
(1)基础设施方面:
保证容器与其所在宿主机的隔离。
(2)权限方面:
① 最小权限原则:
合理限制所有组件的权限,确保组件只执行它被授权的行为,通过限制单个组件的能力来限制它的权限范围。
② 用户权限:
划分普通用户和管理员的角色。
(3)集群方面:
① APl Server 的认证授权:
Kubernetes 集群中所有资源的访问和变更都是通过 Kubernetes APl Server 来实现的,因此需要建议采用更安全的 HTTPS 或 Token 来识别和认证客户端身份(Authentication),以及随后访问权限的授权(Authorization)环节。
② APl Server 的授权管理:
通过授权策略来决定一个 API 调用是否合法,对合法用户进行授权并且随后在用户访问时进行鉴权,建议采用更安全的 RBAC 方式来提升集群安全授权。
③ 敏感数据引入 Secret 机制:
对于集群敏感数据建议使用Secret方式进行保护。
④ AdmissionControl(准入机制):
对 kubernetes api 的请求过程中,顺序为:先经过认证 & 授权,然后执行准入操作,最后对目标对象进行操作。
43.简述 Kubernetes 准入机制?
在对集群进行请求时,每个准入控制代码都按照一定顺序执行。
如果有一个准入控制拒绝了此次请求,那么整个请求的结果将会立即返回,并提示用户相应的 error 信息。
准入控制(AdmissionControl)准入控制本质上为一段准入代码,在对 kubernetes api 的请求过程中,顺序为:先经过认证 & 授权,然后执行准入操作,最后对目标对象进行操作。
常用组件(控制代码)如下:
① AlwaysAdmit:允许所有请求。
② AlwaysDeny:禁止所有请求,多用于测试环境。
③ ServiceAccount:
- 它将 serviceAccounts 实现了自动化,它会辅助 serviceAccount 做一些事情;
- 比如:如果 pod 没有 serviceAccount 属性,它会自动添加一个 default,并确保 pod 的 serviceAccount 始终存在。
④ LimitRanger:
- 观察所有的请求,确保没有违反已经定义好的约束条件;
- 这些条件定义在 namespace 中 LimitRange 对象中。
⑤ NamespaceExists:观察所有的请求,如果请求尝试创建一个不存在的 namespace,则这个请求被拒绝。