面试又挂了,竟然被k8s难倒了!
过去几年,以 Docker、Kubernetes 为代表的容器技术已发展为一项通用技术,BAT、滴滴、京东、头条等大厂,都争相把容器和 K8S 项目作为技术重心,试图“放长线钓大鱼”。 就说阿里吧,目前基本所有业务都跑在云上,其中有一半已迁移到自己定制 Kubernetes 集群上。据说,今年计划完成 100% 基于 K8S 集群的业务部署。而服务网格这块儿,在阿里的一些部门(比如蚂蚁金服),已经有线上业务在用了。 这充分说明了容器在当今软件研发领域的地位。所以, 掌握容器技术成为很多公司在招聘时的重要选项。 但是,容器技术本身偏向运维,namespace 资源隔离、cgroups 资源限制等概念,对开发者来说,理解起来比较困难。这几年,在跟朋友探讨 K8S 落地时,也有一些问题被反反复复地提及,比如: 为什么容器里只能跑“一个进程”? 原先一直用的某个 JVM 参数,在容器里就不好使了? 为什么 Kubernetes 不能固定 IP 地址?容器网络连不通,该如何 Debug? K8S 中 StatefulSet 和 Operator 到底什么区别?PV 和 PVC 又该怎么用? 这些问题的答案和原理并不复杂。 但对初学者来说,很难用一两句话就解释清楚。因为容器技术涉及操作系统、网络、存储、调度、分布式原理等等方方面面的知识,是个名副其实的全栈技术。 而其技术体系里那些