k8s面试题
1 简述etcd及其特点
ETCD是高可用分布式的键值存储系统
特点
1)强一致性:即使部分节点故障,etcd仍能正常工作,并保持数据一致
(强一致性:分布式系统中,更新操作,所有节点读取的数据都是最新的,一致的)
2)高可用:etcd支持数据多副本复制,一个节点挂,其他节点接替工作
3)快速响应:它使用内存存储,可快速读写,支持异步复制数据到其他节点
4)简单易用:提供了http api,用http来更新和读取数据,还提供了客户端和命令行
5)功能丰富:除了基本的键值存储,etcd还提供了事务支持(在一个事务中要不全部成功执行,要不全部失败回滚)
和触发器机制(即满足一些条件,触发相应操作)
2 简述etcd适应的场景
1)多个节点的数据一致性
2)服务发现和负载均衡:服务注册到etcd, 通过查询etcd获取服务们的地址和状态。
3)分布式锁和并发控制(两者都是说的解决多个并发数据不一致的问题)
(原子操作:要么执行成功,要不失败,不存在部分执行)
(分布式锁:多个节点同时访问某个资源,只有一个节点可以获取到锁并执行操作,避免多节点同时修改资源)
4)etcd可以作为一个集中的配置存储,应用可以订阅它的信息,获取最新的配置信息,更新自身配置。
5)任务信息写入到etcd的有序集合中,消费者按顺序领取任务处理,实现分布式任务的调度和执行
3 简述什么是Kubernetes?
开源的容器编排工具,用于
1)自动化容器部署:比如要部署web应用到集群,可以通过定义一个deployment来描述部署规范,比如容器image,副本数量和资源限制,那么k8s会根据这个部署规范自动创建和管理一组pod。
2)扩展:就是deployment里修改了副本数量,k8s能自动增加副本数量和减少副本数量。
3)管理:容器管理是指k8s会自动重启异常退出的容器ÿ