前言
下面是 16 道 Kubernetes 面试题。非标准答案,如有错误地方请指出。目的是帮助大家温习K8S。
题目 与 非标准答案
一、k8s集群规模,使用的版本及部署方式,master节点跑了什么组件,每个组件作用?
k8s集群规模:个人推荐 K8S 集群规模不要超过千台节点
k8s使用版本:比最新版本低一个版本(例:目前最新是1.17版本,生产推荐使用 1.16版本)
k8s部署方式:个人推荐使用 kubeadm 和 二进制 部署
K8S Master 节点一般跑了: ETCD、ApiServer、Controller Manager、Scheduler
ETCD 分布式的K-V存储系统http sever:(在etcd3里面变成了grpc server),主要处理client的操作请求以及节点间的数据同步和心跳保持
raft状态机:通过对raft一致性协议的实现来保证etcd集群的高可用性
store:负责etcd中事务操作的逻辑,是api server的命令的具体实现
wal存储:负责具体的数据持久存储操作。它分为两部分,entry 负责实际的日志数据存储(在etcd里数据的存储都是带版本号的,对于同一个键值可能会有多个版本的记录存在,所以数据实际的存储方式即通过事务日志进行存储,而在内存里则存有键和版本号的映射关系以方便查询)。snapshot 则是对日志数据的的状态存储以防止过多的数据存在。
API Server
ApiServer:对外提供增删查改etcd中资源配置数据,worker节点kubelet同master节点的API Server进行交互,