高可用Kubernetes云平台设计与实现—Docker容器应用开发2.pdf

高可用Kubernetes云平台设计与实现—Docker容器应用开发2.pdf

第一章设计任务

1.1设计背景

1.1.1设计背景

某某公司部署软件项目从测试到生产环境,每次都要部署一大堆依赖的软件、工具,

而且部署期间出现问题几率很大,花费了很长时间。运用Docker技术可以将测试运行

的环境打包部署在生产环境,能有效解决遇到的生产环境部署时间长的问题。首先使用

docker安装了基础环境,可以用来为后面的项目的制作提供最基础的服务。另外,为

了提高内部资源的保密性,有些项目工作不能将镜像提供给公网上,所以要定制一个

内部的镜像,需要管理镜像。因此就搭建了registry仓库用来管理、存储这些镜像,

可以用于构建私有镜像仓库。定制了nginx和mysql镜像,镜像构建完成之后,如

果就是说其他服务器或者内网的电脑需要使用到这些镜像的话,就需要通过搭建的私

有仓库从上面下载下来。为了防止数据不小心丢失,后面用数据卷把docker里面的数

据进行备份,为了部署更快,后面采用jenkins、maven、gitlab进行持续化部署,

从而节省更多的时间。

1.1.2Docker介绍

Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到

一个可移植的镜像中,然后发布到任何流行的Linux或Windows机器上,也可以实现

虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。Docker可以让开发者

打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的

Linux机器上,也可以实现虚拟化。开发者可以打包自己的应用到容器里面,然后迁移

到其他机器的docker应用中,可以实快速部署。

1.1.3Docker的核心概念

(1)镜像(Image)

(2)容器(Container)

(3)仓库(Registry)

了解容器镜像先要了解linux系统的基础知识,典型的linux启动到运行需要2

个FS,bootfs和rootfs。

bootfs是linux启动时进行加载的,会安装系统所使用的kernel内核,创建完

成后bootfs会进行解。

1

rootfs是我们真正去使用linux是操作的系统文件系统,包含/dev/bin等目录,

对于我们构建容器镜像来说,我们利用rootfs作为我们的基础镜像来使用。镜像构

建基于一个基础镜像将我们需要进行安装的依赖和程序根据Dockerfile编写逐层叠

加到镜像中,这里涉及到了一个容器。镜像的概念就是,镜像分层,镜像的每一层都

会有一个独立的id,Docker使用UnionFS对Docker镜像进行分层和合层记录。容

器就是一个平台,用来提供各种各样的服务。仓库主要是存储、上传下载镜像。

1.1.2Registry私有仓库

Registry是docker中用来配置自己的私有镜像仓库,可以把镜像打包提交给私

有仓库里面,因为是自己本地搭建的镜像仓库,也会更加安全,访问的时候也更快,也

更方便使用,管理的时候也会更加方便,搭建私有仓库就可以起到这么好的作用。

1.1.3Jenkins自动化部署

Jenkins是一个用来项目自动化部署工具,带有很多用于持续集成的插件。Jenkins

用于持续构建和测试您的软件项目,从而使开发人员更容易将更改集成到项目中,并使

用户更容易获得新的构建。它还允许使用大量的持续集成去部署,打包,用于其它需要

用到的软件上面。采用Jenkins进行持续化部署,可以更加方便的在我们的项目中帮

我们去部署、打包项目,避免了很多不必要的麻烦,把项目部署到Jenkins中,然后

添加流水线脚本,构建完项目之后启动容器访问就能帮助我们很快的完成的完成打包工

作。

1.1.4Gitlab介绍

GitLab是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在

此基础上搭建起来的web服务,GitLab是一个用于仓库管理的开源代码托管系统。

它允许你跟踪仓库中的issue,实施代码评审以及通过Wiki页面创建辅助的项目文

档;换句话说,它与GitHub和Bitbucket几乎相同。GitLab特有的优点是,它是一

个开源产品,你不需要支付版权费用即可在任何地方安装这个软件,而且可以直接扩展

这个软件,不会因受

文档评论(0)

1亿VIP精品文档

相关文档