浅谈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 Balancer(Ingress)
  5. 网络性能

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

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

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

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

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

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

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

时间: 2024-10-22 00:09:31

浅谈Kubernetes和Docker的相关文章

DockOne微信分享(七十):浅谈Docker安全合规建设

本文讲的是DockOne微信分享(七十):浅谈Docker安全合规建设[编者的话]通过阅读网上帖子及浏览相关信息,大家可能会产生一种错觉:Docker安全性不足,对Docker导入生产环境持保守态度.不过实际情况是,虽然我们需要对容器的安全性高度关注,但只要使用得当,完全可以成为一种不低于使用虚拟机或者裸机的安全.高效生产系统. 今天和大家聊聊Docker的安全合规建设. 安全,这里我们指的是信息安全,包括数据安全和网络安全,主要是数据在处理.传输.存储等过程中的安全,它包括了信息本身的安全和防

容器存储架构比较:Kubernetes、Docker和Mesos Compare

本文讲的是容器存储架构比较:Kubernetes.Docker和Mesos Compare[编者的话] 容器存储是容器离不开的一个话题,对于无状态的Docker容器,容器重启时容器数据会自动清除,一些静态的数据我们可以通过配置文件或者在容器build时直接写死.但是对于数据库.日志文件等可以实时变化的数据,我们不能够通过这种方法存取.结合场景这次主要谈下Docker的存储方式,以及主要存储方式的对比. [3 天烧脑式基于Docker的CI/CD实战训练营 | 北京站]本次培训围绕基于Docker

浅谈web网站架构演变过程

原文:浅谈web网站架构演变过程 前言 我们以javaweb为例,来搭建一个简单的电商系统,看看这个系统可以如何一步步演变.   该系统具备的功能:   用户模块:用户注册和管理 商品模块:商品展示和管理 交易模块:创建交易和管理    阶段一.单机构建网站 网站的初期,我们经常会在单机上跑我们所有的程序和软件.此时我们使用一个容器,如tomcat.jetty.jboos,然后直接使用JSP/servlet技术,或者使用一些开源的框架如maven+spring+struct+hibernate.

浅谈微服务的来龙去脉

浅谈微服务的来龙去脉 背景介绍 微服务怎么来的 微服务是进化出来的 微服务不是银弹 作者:王清培(Plen wang) 沪江 公共业务平台 应用架构师 转载至沪江技术学院微信公众号 背景介绍 最近一段时间公共业务平台在进行大面积的重构,对原来的技术栈进行迁移,逐渐往java.go.node.js等开源.自由为主的技术体系中过度. 虽然这主要是替换技术框架,但也是我们应用系统进行重新设计.业务流程重新梳理的一个好机会,我们将利用这次机会来重构之前发现的一些问题. Martin Fowler大师<重

Dockerfile之优化经验浅谈

本文讲的是Dockerfile之优化经验浅谈,[编者的话]本文主要讲述如何优化Dockerfile,来缩短docker镜像构建需要的时间,以及Dockerfile的一些编辑规范,推荐所有的Docker爱好者阅读,非常基础的文章,本文也许会给你一些启发和指导. 优化您的Dockerfiles Docker镜像应该是小而快的.然而,假设你在BusyBox镜像中预编译GO二进制文件,他们就会变得又大又复杂.如果不能构建一个良好的Dockerfile来帮助你提高构建缓存命中率,那么你的镜像构建过程将会变

浅谈Python中copy()方法的使用

  这篇文章主要介绍了浅谈Python中copy()方法的使用,Python中的拷贝分为潜拷贝和深拷贝,本文只是简单介绍用法,需要的朋友可以参考下 copy()方法返回字典的浅拷贝. 语法 以下是copy()方法的语法: ? 1 dict.copy() 参数 NA 返回值 此方法返回字典的浅拷贝. 例子 下面的例子显示了copy()方法的使用. ? 1 2 3 4 5 6 #!/usr/bin/python   dict1 = {'Name': 'Zara', 'Age': 7};   dict

浅谈document.write()输出样式

  这篇文章主要介绍了浅谈document.write()输出样式,十分的简单实用,有需要的小伙伴可以参考下. js中的最基本的命令之一:document.write(),用于简单的打印内容到页面上,可以逐字打印你需要的内容--document.write("content"),这里content就是需要输出的内容;当然还有一种情况,需要输出JS之中比如变量等等变化的东西,那么就需要用document.write(+variable);当然variable就是你想要输出的变量. 既然可

图标字体化浅谈[转]

在做手机端Web App项目中,经常会遇到小图标在手机上显示比较模糊的问题,经过实践发现了一种比较好的解决方案,图标字体化.在微社区项目中,有很多小的Icon(图 标),如分享.回复.赞.返回.话题.访问.箭头等,这些Icon(图标)一般都是纯色的.开始制作时考虑用双倍大小的Sprite图,通过CSS样式设 置只显示二分之一尺寸,这样在Retina屏上显示的大小是正常的,一旦放大屏幕后图标又变得模糊不清,测试的效果不是很理想,后来又考虑多套图标适配方 案.SVG矢量图等,都因为种种原因放弃掉了(

浅谈PHP5中垃圾回收算法(Garbage Collection)的演化

前言:PHP是一门托管型语言,在PHP编程中程序员不需要手工处理内存资源的分配与释放(使用C编写PHP或Zend扩展除外),这就意味着PHP本身实现了垃圾回收机制(Garbage Collection).现在如果去PHP官方网站(php.net)可以看到,目前PHP5的两个分支版本PHP5.2和PHP5.3是分别更新的,这是因为许多项目仍然使用5.2版本的PHP,而5.3版本对5.2并不是完全兼容.PHP5.3在PHP5.2的基础上做了诸多改进,其中垃圾回收算法就属于一个比较大的改变.本文将分别