K8S和Docker区别详解(5大核心区别)

文摘   2024-11-01 11:20   四川  

关注mikechen十余年BAT架构经验倾囊相授!


大家好,我是mikechen。

Kubernetes(K8S)、和 Docker 是云原生的核心技术,但它们的用途、和定位有所不同,下面重点谈谈两者的核心区别@mikechen

Kubernetes(K8S)

Kubernetes 是一个开源的容器编排平台,主要用于管理大量容器的自动化部署、扩展、和运维。

K8S 的核心作用是编排,帮助用户管理集群中的容器应用,提供高可用性、负载均衡、扩展、滚动更新等功能。

Kubernetes 是一种强大的容器编排解决方案,非常适合现代云计算、和 DevOps 环境。

K8S 可集成 CI/CD 流程,实现持续交付,如下图所示:

当代码提交至代码仓库(如 GitHub、GitLab)后,CI 系统(如 Jenkins、GitLab CI...),会自动触发构建、和测试流程。

构建后的应用程序会被打包成 Docker 镜像,并推送到容器镜像仓库(如:Docker Hub、Harbor...),以便在 K8S 中使用。

K8S还大量应用于微服务架构,适合运行微服务应用,支持服务间独立部署和自动扩展。

docker

Docker 是一种容器化技术,用于打包、和运行容器。

Docker 容器化最“NB”的技术,就是在于隔离,在开发、测试和生产环境之间的应用迁移上提供了极大的便捷性。

其实本质,DockerDocker还是利用 Linux 容器技术(如:cgroups 、和 namespaces),来实现应用的隔离、和资源控制。

通过在宿主机上创建隔离的命名空间、和受限的控制组,Docker 可以为每个容器提供独立的运行环境,并确保容器间互不干扰。

通常情况下,Docker 被用于创建和管理容器镜像,而 Kubernetes 被用于大规模部署和编排这些容器。

k8s和docker区别

Docker 和 Kubernetes 的区别主要在于定位不同:

Docker 关注的是容器的创建、打包和运行,不负责容器的调度、和管理。

Docker 更侧重于单个容器的打包、构建和运行。

而 Kubernetes 专注于编排、和管理大量容器的部署、和运维。

K8S 负责:在多个节点上管理、和协调容器,可以实现容器的自动部署、扩展、监控...等。

K8S 主要是:在运行和维护大规模集群中的容器应用,而不仅是单个容器。

在实际应用中,Docker 和 Kubernetes 经常一起使用,Docker 负责创建、和管理容器镜像,K8S 负责集群中的容器调度、扩展和管理。

以上


最后送大家一个福利:


送大家一份我原创超30万字阿里架构师进阶专题合集


以及给大家整理了一份非常全面Java面试题及答案总结,包含:Java、多线程、JVM、Spring、MySQL、Redis、Dubbo、中间件…等必考题及答案详解。


需要以上架构专题&面试答案的同学,加我微信即可领取!


添加时备注:资料



mikechen的架构笔记
十余年BAT架构经验倾囊相授!
 最新文章