关注△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、中间件…等必考题及答案详解。
需要以上架构专题&面试答案的同学,加我微信即可领取!
添加时备注:资料