行业背景
Docker自2013年发行以来,得到了飞速的发展,直至今日已经成为了基础架构中必不可缺的一份子,也是构建企业云平台的有效手段。而作为容器编排及管理的利器的kubernetes,已经与docker紧紧绑在一起,K8S对docker提供了更加原生的支持,同时提供了资源调度、容器生命周期管理、负载均衡、弹性伸缩、高可用等底层功能。
Docker基本概念
Docker简单理解其实就是运行在linux上的虚拟机,但是又和传统的虚拟机有所不同,docker相比虚拟机更加轻量,对资源的利用更高,最大的一个特点就是docker不需要在宿主机上虚拟出一个虚拟机操作系统,多个docker共享宿主机的linux内核,相比虚拟机性能更好。还有一点,docker可以将应用程序和依赖的库文件一起打包入镜像,这个镜像就是应用的完整的运行时环境,这样大大简化了应用发布及迁移的流程。
K8S核心技术
对于初学者来说可能觉得k8s的技术复杂,但其实k8s并没有什么核心技术,k8s只是一个工具实现了我们资源可控、网络隔离、弹性伸缩、快速部署等功能。它其实就是将操作系统的一些命令或者功能封装进k8s里帮助我们实现上面的功能。比如通过操作系统cgroup实现容器的资源隔离和限制,通过iptables,lvs实现端口映射和流量转发,数据库使用成熟的分布式存储etcd,flannel网络其实也只是在真实物理网络上虚拟出来的overlay网络,持久化卷也是基于外部的ceph或者nfs、gluserfs或者本地盘等物理存储构建。所以我们看,k8s就是将需要的技术做了整合,实现的集群的管理。
K8S架构
好了,废