本站以分享各种运维经验和运维所需要的技能为主
《python零基础入门》:python零基础入门学习
《python运维脚本》: python运维脚本实践
《shell》:shell学习
《terraform》持续更新中:terraform_Aws学习零基础入门到最佳实战
《k8》从问题中去学习k8s
《docker学习》暂未更新
《ceph学习》ceph日常问题解决分享
《日志收集》ELK+各种中间件
《运维日常》运维日常
《linux》运维面试100问
思考一下问题:
41、简述Kubernetes如何保证集群的安全性?
42、简述Kubernetes准入机制?
43、简述Kubernetes RBAC及其特点(优势)?
44、简述Kubernetes Secret作用?
45、简述Kubernetes Secret有哪些使用方式?
参考答案:
41、简述Kubernetes如何保证集群的安全性?
Kubernetes通过一系列机制来实现集群的安全控制,主要有如下不同的维度:
基础设施方面:保证容器与其所在宿主机的隔离;
权限方面:
最小权限原则:合理限制所有组件的权限,确保组件只执行它被授权的行为,通过限制单个组件的
能力来限制它的权限范围。
用户权限:划分普通用户和管理员的角色。
集群方面:
API Server的认证授权:Kubernetes集群中所有资源的访问和变更都是通过Kubernetes API
Server来实现的,因此需要建议采用更安全的HTTPS或Token来识别和认证客户端身份
(Authentication),以及随后访问权限的授权(Authorization)环节。
API Server的授权管理:通过授权策略来决定一个API调用是否合法。对合法用户进行授权并且随后
在用户访问时进行鉴权,建议采用更安全的RBAC方式来提升集群安全授权。
敏感数据引入Secret机制:对于集群敏感数据建议使用Secret方式进行保护。
AdmissionControl(准入机制):对kubernetes api的请求过程中,顺序为:先经过认证 & 授
权,然后执行准入操作,最后对目标对象进行操作。
42、简述Kubernetes准入机制?
在对集群进行请求时,每个准入控制代码都按照一定顺序执行。如果有一个准入控制拒绝了此次请求,
那么整个请求的结果将会立即返回,并提示用户相应的error信息。
准入控制(AdmissionControl)准入控制本质上为一段准入代码,在对kubernetes api的请求过程中,
顺序为:先经过认证 & 授权,然后执行准入操作,最后对目标对象进行操作。常用组件(控制代码)如
下:
AlwaysAdmit:允许所有请求
AlwaysDeny:禁止所有请求,多用于测试环境。
ServiceAccount:它将serviceAccounts实现了自动化,它会辅助serviceAccount做一些事情,比
如如果pod没有serviceAccount属性,它会自动添加一个default,并确保pod的serviceAccount始
终存在。
LimitRanger:观察所有的请求,确保没有违反已经定义好的约束条件,这些条件定义在
namespace中LimitRange对象中。
NamespaceExists:观察所有的请求,如果请求尝试创建一个不存在的namespace,则这个请求
被拒绝。
43、简述Kubernetes RBAC及其特点(优势)?
RBAC是基于角色的访问控制,是一种基于个人用户的角色来管理对计算机或网络资源的访问的方法。
相对于其他授权模式,RBAC具有如下优势:
对集群中的资源和非资源权限均有完整的覆盖。
整个RBAC完全由几个API对象完成, 同其他API对象一样, 可以用kubectl或API进行操作。
可以在运行时进行调整,无须重新启动API Server。
44、简述Kubernetes Secret作用?
Secret对象,主要作用是保管私密数据,比如密码、OAuth Tokens、SSH Keys等信息。将这些私密信
息放在Secret对象中比直接放在Pod或Docker Image中更安全,也更便于使用和分发。
45、简述Kubernetes Secret有哪些使用方式?
创建完secret之后,可通过如下三种方式使用:
在创建Pod时,通过为Pod指定Service Account来自动使用该Secret。
通过挂载该Secret到Pod来使用它。
在Docker镜像下载时使用,通过指定Pod的spc.ImagePullSecrets来引用它。