golang面试归纳总结 - Docker&Kubernetes篇(持续更新)

112 阅读2分钟

docker.jpeg

1. docker entrypoint 和 cmd 区别
2. docker add 和copy区别
3. docker镜像打包如何减小镜像体积
4. docker优势在哪里? cgroups namespace
5. docker实现原理?资源隔离和限制具体实现?runC实现?containerd OCI实现原理?
6. docker进程在宿主机上可以看到吗?
7. 如何知道一个进程是宿主机的还是docker容器的?
8. docker 相关api熟悉吗?
9. k8s你熟悉哪些模块实现?
10. 你了解的k8s组件有哪些?滚动更新是怎么做的?k8s热更新怎么实现?如何实现把一个pod调度到另一个pod?
11. 你熟悉k8s的哪些模块?常用的api有了解吗?
12. 说说k8s scheduler实现原理
13. k8s的哪些数据库存储在etcd,哪些数据没存储在etcd
14. 讲讲etcd选主过程?
15. cni有了解吗,它是什么,能够做什么?
16. 容器升级cicd怎么做的
17. 微服务是怎样的概念?拆分粒度怎么划分?微服务和服务发现怎么实现?
18. 讲下微服务的好处,弊端?
19. 微服务调用openfeign底层怎么调用的?
20. 微服务间链路追踪有了解吗,一个请求过来,怎么追踪的,spanid有了解吗?
21. 分布式存储有了解吗?说说etcd实现原理。
22. 分布式系统数据一致性有了解吗?一致性协议有哪些?介绍下?

答:raft、paxos

23. 介绍下选举过程。
24. raft 有一个节点断网后,过一段时间又恢复了,这个过程,是如何实现数据最终一致性的
25. 如何知道某个服务是不是健康的?
26. ceph项目有了解吗?介绍下。
26. select、poll、epoll对比?
27. TCC是什么,介绍下?

TCC (Try、Commit、Cancel) 是一种补偿型事务,该模型要求应用的每个服务提供 try、confirm、cancel 三个接口,它的核心思想是通过对资源的预留(提供中间态),尽早释放对资源的加锁,如果事务可以提交,则完成对预留资源的确认,如果事务要回滚,则释放预留的资源。