K8S面试题

1.Docker和虚拟机有哪些不同?
docker 是轻量级的沙盒,在其中运行的只有应用,而虚拟机里还有额外的独立操作系统,对cpu和内存占用比较大。
 
2.简述Kubernetes 和Docker的关系?
 
docker通过dockerfile 将应用程序所需的设置和依赖打包到一个容器中,从而实现迁移性的特点,
kubernetes 用于关联和编排在多个主机上运行的容器
 
3.简述kube-proxy ipvs 和iptables的异同?
相同点:都是通过netfilter内核进行转发, ---------netfilter 是防火墙
不同点:iptables 是为防火墙而设计的,性能低下,它是使用线性的执行模式(从上执行依次执行)进行扩展的,ipvs则专门用于高性能负载均衡的集群,并使用更高效的数据结构(哈希表hash ,支持索引 类似mysql)
ipvs和iptables相比的优势:
1.ipbs为大型集群提供了更好的可扩展性和性能
2.支持比iptables 更复杂的负载均衡算法 支持了svl(RR 轮询,wrr 加权轮询,lc 最少连接,wlc 加权最少连接)
3.ipvs支持服务健康检测,(故障了剔除,恢复之后加载)和连接重试等功能
4.ipvs可以动态修改ipset集合
 
4.简述kube-proxy 切换为ipvs负载?
1.查看当前服务器的kube-proxy的 有多少各节点,
2 . 任意查看一个节点它当前的Using 规则,是否为iptables
3. 使用shell脚本,批量修改kube-proxy的配置文件,
4.切换k8s 的配置文件模式,将iptables的mode 修改为ipvs
5,修改之后将原有的kube-proxy自动生成的文件,删除,k8s会自动根据配置文件重新生成kube-proxy文件,
6.使用检测命令查看所有的节点,打开节点看防火墙规则是否变为ipvs,
7.拉取任意一个服务,启动之后查看访问规则,是否变更为ipvs的访问规则
见配置手册,
 
5.简述微服务部署中的蓝绿发布?

 

 

1.在k8s中同时发布两套系统,一套是绿色 一套是蓝色,绿色是正在运行的,蓝色的是停止运行的。
还有两种发布方式:金丝雀发布,滚动发布
0
 
0
0
0
v2是蓝版
0
 
连个节点都可以访问,但是页面不一样。
要配置service.yaml文件 确定哪个版本是绿版

 

 

根据32515端口访问的为绿版的页面
 
绿版切换为蓝版: 发布上线
每隔一秒访问一次绿版的页面
编辑demo-service这个服务
将文件中的selector 的版本切换为v2蓝版 保存退出后 马上就变为蓝版的版本发布上线了 立即生效
要切回原版,只需要将版本修改回来即可
 
两个是同时发布的

 

 

 
6.简述蓝绿发布的优势与不足有哪些?
优势:升级,切换,回退 速度非常快。
不足:他是全量切换,需要两倍的机器资源,万一版本代码有错误,对用户体验不好。
 
7.简述kubernetes 静态Pod?
kubeadm 静态pod路径:/var/lib/kubelet/config.yaml
二进制安装:/usr/lib/systemd/system/kubelet.service 添加配置 “--pod-manifest-path=dir”
 
kubeadm 安装的静态pod 的静态资源路径
这些都是静态pod,
 
静态pod如何创建
crictl ps 来管理pod
 
1.静态pod 的配置文件只要存放在静态目录中,则它永远都不会被关闭或者删除
2.只要在静态资源目录下将不用pod移走它就会立即停止,删除,再移进来就会自动创建和启动
3.静态pod适合再云原生中提供一下基础服务,就是绝对不能死的这种服务
 
8.简述 Kubernetes 数据持久化的方式有哪些?
1.空目录 emptydir 生命周期与pod一致 定义为临时存储,只能存储session
2.主机目录 hostpath hostdir 将宿主机已经存在的目录或文件挂载到容器内部,类似于docker中bind mount
3.pv(persistentVolume) nfs gfs ceph 分布式文件系统,数据持久化存储的解决方案
 
9.简述dockerfile 中copy和add指令有什么区别?
 
唯一的区别,是从远程获取资源,还是从本地获取资源
add :支持url获取,并且支持解压缩
copy :只能从docker build所在的主机读取资源并复制到镜像中
 
 
 
posted @ 2022-09-22 10:10  西北后生  阅读(347)  评论(0)    收藏  举报