2016 - 2024

感恩一路有你

微服务和docker的关系 微服务为什么要选择docker?

浏览量:2476 时间:2021-03-15 16:56:57 作者:admin

微服务为什么要选择docker?

早在2013年的时候,docker就已经发行,然而那会还是很少人了解docker。一直到2014年,Martin Fowler提出了微服务的概念,两个不相干的技术终于走在了一起,创造了今天的辉煌!现在:用上了docker容器后,将Docker可以将我们的应用程序打包封装到一个容器中,该容器包含了应用程序的代码、运行环境、依赖库、配置文件等必需的资源。容器之间达到进程级别的隔离,在容器中的操作,不会影响道宿主机和其他容器,这样就不会出现应用之间相互影响的情形!

微服务在Docker k8s下如何部署?

正好最近在项目中用到了这些技术,我来抛砖引玉吧。

首先说结论:

1. k8s 是非常好的一项技术,很稳定。如果发现正在运行的 pod 的数量不等于用户设定的期望值, k8s 则会自动创建或者删除 pod,直到两者相等。这样既保障了服务的不间断运行,同时还可以动态缩放服务的规格。用户只要调整 pod 的 replicate 的数量即可,其他的都交给 k8s 就好,非常省心。

2. 要用 jenkins 来集成命令行操作,虽然我个人非常偏爱使用命令行,但是我不得不承认用 jenkins 集成命令行操作会极大的提升工作效率。

下面说实现步骤:(本文以 azure 平台为例)

1. 编写 Dockerfile

2. 在 jenkins 创建任务,并执行包含如下命令的脚本

2.1 git pull 源代码到本地

2.2 docker build 命令生成镜像文件

2.3 docker 定义镜像文件版本号并上传到 azure 平台

2.4 kubectl 命令来创建 k8s 的 deployment & service.

2.5 每次版本更新可以调用 update image 来编译新的镜像版本并提供给 k8s 使用

注意在创建 k8s 的 deployment 和 service 的时候需要编写 yaml 格式的配置文件, deployment 配置包括 名称,镜像文件地址, cpu 最大最小分配值,内存最大最小分配值等。service 配置文件包括 名称,引用的 deployment 名称,以及是否使用 load balancer等。

更多详细信息可以参考我的 wiki. https://github.com/FamingHou/MyWiki

为什么说docker是一种革命性的技术?

一个非常好的问题,我是工作多年的Web应用架构师,来回答一下这个问题。欢迎关注我,了解更多IT专业知识。


Docker称不上革命性的技术,但可以称得上是一个革命性的解决方案和工具。


Docker基于Linux内核通过操作系统和虚拟容器调用CGroup, Namespace等系统接口完成资源的分配与相互隔离,依赖系统资源运行,使用的技术都是已有的。


Docker出现之前,有现在还在用的VMWare虚拟机,有Ghost,部分解决了服务器安装配置的琐碎工作,但是没有解决运行环境的问题。比如常见的环境不一致的问题:开发环境能运行,测试生产环境有bug?还有就是每次新服务器、新环境搭建时无穷无尽的问题。


那么Docker出现后,整个环境被打包起来,也就是将所有安装配置代码化自动化了,结合资源编排和云服务,可以秒启一个集群化的web服务系统,如果没有容器技术是做不到的。Docker是使用最普遍的容器技术,事实上的容器技术标准。


推荐看一个Docker秒启Web服务的视频:https://www.toutiao.com/i6801418770997838343/

微服务和docker的关系 docker部署微服务 微服务必须用docker吗

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。