浅谈Kubernetes和Docker-阿里云开发者社区

开发者社区> 云原生> 正文

浅谈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,中钞科堡等公司,目前就职于中国电信云计算分公司

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
云原生
使用钉钉扫一扫加入圈子
+ 订阅

云原生时代,是开发者最好的时代

其他文章