k8s 是kubernets的缩写,’8‘代表中间的八个字符。
其实 Docker 和 k8s 并非直接的竞争对手,它俩相互依存。Docker 是一个容器化平台,而 k8s 是 Docker 等容器平台的协调器。
容器化时代来了
虚拟化技术已经走过了三个时代,没有容器化技术的演进就不会有 Docker 技术的诞生。
(1)物理机时代:多个应用程序可能会跑在一台机器上。
(2)虚拟机时代:一台物理机器安装多个虚拟机(VM),一个虚拟机跑多个程序。
(3)容器化时代:一台物理机安装多个容器实例(container),一个容器跑多个程序。
容器化解决了软件开发过程中一个令人非常头疼的问题,用一段对话描述:
测试人员:你这个功能有问题。
开发人员:我本地是好的啊。
开发人员编写代码,在自己本地环境测试完成后,将代码部署到测试或生产环境中,经常会遇到各种各样的问题。明明本地完美运行的代码为什么部署后出现很多 bug,原因有很多:不同的操作系统、不同的依赖库等,总结一句话就是因为本地环境和远程环境不一致。
容器化技术正好解决了这一关键问题,它将软件程序和运行的基础环境分开。开发人员编码完成后将程序打包到一个容器镜像中,镜像中详细列出了所依赖的环境,在不同的容器中运行标准化的镜像,从根本上解决了环境不一致的问题。
容器化技术的尖刀武器
可移植性:不依赖具体的操作系统或云平台,比如在阿里云或腾讯云直接随意迁移。 占地小:容器只需要其应用程序以及它需要运行的所有容器和库的依赖清单,不需要将所有的依赖库都打包在一起。 共享 bin 和 lib:不同的容器可以共享 bin 和 lib,进一步节省了空间。
Docker 横空出世
Docker怎么用?
编排系统的需求催生 k8s
如何协调和调度这些容器? 如何在升级应用程序时不会中断服务? 如何监视应用程序的运行状况? 如何批量重新启动容器里的程序?
处理大量的容器和用户 负载均衡 鉴权和安全性 管理服务通信 多平台部署
k8s与Docker Swarm江湖恩怨
k8s是做什么用的?
K8s 架构和组件
controller manager nodes pods
Controller Manager,即控制平面,用于调度程序以及节点状态检测。 Nodes,构成了Kubernetes集群的集体计算能力,实际部署容器运行的地方。 Pods,Kubernetes集群中资源的最小单位。
Docker与k8s 难舍难分
开发实践,灵魂追问
最后一个问题
Docker 不香吗?为什么还要用 k8s
有道无术,术可成;有术无道,止于术
欢迎大家关注Java之道公众号
好文章,我在看❤️