浅谈Kubernetes和Docker

简介:

近年来,Docker像一股旋风席卷IT界,Docker指的是容器技术,其字面意思是集装箱。Docker容器技术得以快速发展,核心技术是镜像打包,使得上下游能友好地进行协助和标准化交付。“build once run anywhere”构建一次到处运行的想法非常好,实践中发现,系统在开发和测试,以及生产环境之间部署时应用配置会发生变化,仅靠“环境变量-e”没法满足实际需求。

另外,“容器镜像”的架构使得应用配置文件变更困难,如容器已部署你的需求。但是,更改应用配置文件中的一个参数,都需要重新修改Dockerfile文件来实现,体现不出用容器的优势,反而感觉更加繁琐。

这个时候,我们来看看集装箱的概念。集装箱是装在船上来运输的,船上的舵手把集装箱送往全世界。IT世界的Docker装在数据中心的Linux系统环境中,容器何去何从由Kubernetes这个舵手说了算。

有人说Kubernetes出身好(谷歌的基因),活儿好,但是不好管理,作为老船长的几个IT管理者又拿出了Sextant来驯服Kubernetes。Sextant是什么东西呢?Sextant和Kubernetes(K8S)的关系,好比RedHat、Suse、CentOS、Ubuntu和Linux关系一样。Sextant算是Kubernetes(K8S)的一种发行版。Kubernetes的使用就跟他的名字一样很复杂。这几位技术专家在Kubernetes(K8S)的基础上加入了许多功能特性,方便安装部署

使用Kubernetes需要解决的问题

    总而言之,目前我们使用Kubernetes可以解决以下问题:

  1. 单机操作系统(Core OS

  2. 自动安装和部署(Sextant

  3. .分布式文件系统(Cephalexin

  4. Load BalancerIngress

  5. 网络性能

数据中心用户为什么要用DockerKubernetes呢?

从业务的角度上说,当业务需要上线时,需要及时申请到所需资源。当业务完成后需要释放资源,没有业务需求的时候要为下次业务出现时做好准备。

从数据中心的组织结构来说,数据中心里有业务集群的概念,一个集群只运行某一种应用,各集群之间相对独立,这保证了应用所需资源,但影响了利用率,影响了数据中心数据内部迁移流动的连贯性。

容器的出现为解决这些问题提供了可能,容器的特点就是把应用容器化,放到容器内部,解决了环境依赖的问题,从而可以方便地进行迁移。

但是,只有容器是不行的,还需要用到集群化的管理工具,一个个零散的容器需要被统一管理才有价值,在技术实现上就需要如KubernetesK8S)这样的分布式操作系统,让所有作业都由分布式操作系统来调度,而且分布式操作系统可以打破数据中心内部一个个孤立的业务集群,将集群做到标准化。

总而言之,k8sdocker的关系不复杂。 k8s是为部署与管理docker而生的管理平台。 k8s提供了docker的创建、管理、负载与高可用管理等功能,但如果没有k8sdocker还是可以使用的。与k8s类似的还有其它,如mesos  


作者:刘志红   16年系统研发关联工作经验,曾就职于Oracle,NTT Data,中钞科堡等公司,目前就职于中国电信云计算分公司

相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
目录
相关文章
|
5月前
|
Kubernetes Docker Python
Docker 与 Kubernetes 容器化部署核心技术及企业级应用实践全方案解析
本文详解Docker与Kubernetes容器化技术,涵盖概念原理、环境搭建、镜像构建、应用部署及监控扩展,助你掌握企业级容器化方案,提升应用开发与运维效率。
882 108
|
4月前
|
弹性计算 关系型数据库 微服务
基于 Docker 与 Kubernetes(K3s)的微服务:阿里云生产环境扩容实践
在微服务架构中,如何实现“稳定扩容”与“成本可控”是企业面临的核心挑战。本文结合 Python FastAPI 微服务实战,详解如何基于阿里云基础设施,利用 Docker 封装服务、K3s 实现容器编排,构建生产级微服务架构。内容涵盖容器构建、集群部署、自动扩缩容、可观测性等关键环节,适配阿里云资源特性与服务生态,助力企业打造低成本、高可靠、易扩展的微服务解决方案。
1816 10
|
4月前
|
Kubernetes Devops Docker
Kubernetes 和 Docker Swarm:现代 DevOps 的理想容器编排工具
本指南深入解析 Kubernetes 与 Docker Swarm 两大主流容器编排工具,涵盖安装、架构、网络、监控等核心维度,助您根据团队能力与业务需求精准选型,把握云原生时代的技术主动权。
342 1
|
7月前
|
存储 Kubernetes 监控
Docker与Kubernetes集成挑战及方案
面对这些挑战,并不存在一键解决方案。如同搭建灌溉系统需要考虑多种因素,集成Docker与Kubernetes也需要深思熟虑的规划、相当的技术知识和不断的调试。只有这样,才能建立起一个稳定、健康、高效的Docker-Kubernetes生态,让你的应用像花园中的植物一样繁荣生长。
327 63
|
9月前
|
存储 Kubernetes 调度
Kubernetes、Docker和Containerd的关系解析
总的来说,Docker、Containerd和Kubernetes之间的关系可以用一个形象的比喻来描述:Docker就像是一辆装满货物的卡车,Containerd就像是卡车的引擎,而Kubernetes就像是调度中心,负责指挥卡车何时何地送货。
414 12
|
10月前
|
Kubernetes Docker 容器
Kubernetes与Docker参数对照:理解Pod中的command、args与Dockerfile中的CMD、ENTRYPOINT。
需要明确的是,理解这些都需要对Docker和Kubernetes有一定深度的理解,才能把握二者的区别和联系。虽然它们都是容器技术的二个重要组成部分,但各有其特性和适用场景,理解它们的本质和工作方式,才能更好的使用这些工具,将各自的优点整合到生产环境中,实现软件的快速开发和部署。
384 25
|
12月前
|
Kubernetes Linux 虚拟化
入门级容器技术解析:Docker和K8s的区别与关系
本文介绍了容器技术的发展历程及其重要组成部分Docker和Kubernetes。从传统物理机到虚拟机,再到容器化,每一步都旨在更高效地利用服务器资源并简化应用部署。容器技术通过隔离环境、减少依赖冲突和提高可移植性,解决了传统部署方式中的诸多问题。Docker作为容器化平台,专注于创建和管理容器;而Kubernetes则是一个强大的容器编排系统,用于自动化部署、扩展和管理容器化应用。两者相辅相成,共同推动了现代云原生应用的快速发展。
2959 11
|
Kubernetes 调度 Apache
Docker 编排工具比较:Kubernetes、Docker Swarm 和 Mesos,选择最适合你的容器编排方案
Docker 编排工具比较:Kubernetes、Docker Swarm 和 Mesos,选择最适合你的容器编排方案
547 0