且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

《开源容器云OpenShift:构建基于Kubernetes的企业应用云平台》一2.4 部署应用

更新时间:2022-08-14 08:05:37

本节书摘来自华章出版社《开源容器云OpenShift:构建基于Kubernetes的企业应用云平台》一书中的第2章,第2.4节,作者 陈耿 ,更多章节内容可以访问云栖社区“华章计算机”公众号查看

2.4 部署应用

在前几节中,我们完成了众多关键组件的部署。现在是时候尝试部署一些应用了。本节我们将部署一个CakePHP应用及MySQL数据库。
1)登录OpenShift Web控制台。单击New project按钮。创建一个名为hello-world-php的项目。输入项目名称hello-world-php及项目显示名Hello World PHP。单击Create按钮创建项目,如图2-13所示。
2)在服务目录的过滤器中输入cake,找到cakephp-mysql-example模板,如图2-14所示。

《开源容器云OpenShift:构建基于Kubernetes的企业应用云平台》一2.4 部署应用

3)选取Template后将跳转至Template的参数输入页面。在参数输入页面为Application
Hostname属性赋值php.apps.exmaple.com,如图2-15所示。

《开源容器云OpenShift:构建基于Kubernetes的企业应用云平台》一2.4 部署应用

4)单击模板参数输入页面底部的Create按钮,执行部署,如图2-16所示。
《开源容器云OpenShift:构建基于Kubernetes的企业应用云平台》一2.4 部署应用

5)执行部署后,浏览器将跳转至部署完成页面,如图2-17所示。

《开源容器云OpenShift:构建基于Kubernetes的企业应用云平台》一2.4 部署应用

6)单击确认页面的Continue overview链接,跳转到项目的概览页面。此时Open-Shift会在后台创建相应的对象,并下载相关的容器镜像。MySQL容器一般会较快完成启动,因为CakePHP应用涉及一个镜像构建的过程,即Source to Image。关于这个镜像构建的细节,本书后续再表。单击界面上的view log链接可以查看相关的日志,如图2-18所示。

《开源容器云OpenShift:构建基于Kubernetes的企业应用云平台》一2.4 部署应用

7)稍等片刻后,在CakePHP的构建日志界面,可以看到镜像构建的实时日志输出,如图2-19所示。从日志中可以看到,OpenShift会从GitHub仓库中下载指定的PHP源代码,然后将代码注入一个含PHP运行环境的镜像,最终生成一个包含PHP应用及PHP运行环境的新镜像,并将新的镜像推送到前文部署的内部镜像仓库。

《开源容器云OpenShift:构建基于Kubernetes的企业应用云平台》一2.4 部署应用

Cloning "https://github.com/openshift/cakephp-ex.git" ...
Commit: 701d706b7f2b50ee972d0bf76990042f6c0cda5c (Merge pull request #42 from bparees/recreate)
Author: Ben Parees<bparees@users.noreply.github.com>
Date:   Mon Aug 22 14:44:49 2016 -0400
---> Installing application source...
Pushing image 172.30.73.49:5000/hello-world-php/cakephp-mysql-example:latest ...
Pushed 0/10 layers, 1% complete
Pushed 1/10 layers, 50% complete
Pushed 2/10 layers, 50% complete
Pushed 3/10 layers, 50% complete
Pushed 4/10 layers, 50% complete
Pushed 5/10 layers, 50% complete
Pushed 6/10 layers, 61% complete
Pushed 7/10 layers, 71% complete
Pushed 7/10 layers, 78% complete
Pushed 8/10 layers, 85% complete
Pushed 8/10 layers, 91% complete
Pushed 8/10 layers, 97% complete
Pushed 9/10 layers, 99% complete
Pushed 10/10 layers, 100% complete
Push successful

如果构建过程中出现了docker push镜像到内部镜像仓库相关的错误,请检查内部镜像仓库是否正确部署与配置。第一次推送镜像的时间会比较长,因为此时镜像仓库中还没有相应的镜像层(Layer)。后续构建的镜像推送时间将会大大加快,因为大量可以重用的镜像层已经存在于内部的镜像仓库中了。
8)构建完成后,单击左侧菜单栏的Overview按钮,回到项目主页,如图2-20所示。此时可见CakePHP应用已经启动完毕。

《开源容器云OpenShift:构建基于Kubernetes的企业应用云平台》一2.4 部署应用

OpenShift将我们指定的域名php.apps.example.com与CakePHP容器应用进行了关联。单击CakePHP应用右上角的php.apps.example.com域名链接即可打开容器应用,如图2-21所示。

《开源容器云OpenShift:构建基于Kubernetes的企业应用云平台》一2.4 部署应用

php.apps.example.com域名只是我们测试用的域名,并不能被互联网的域名解析服务器解析。需要修改浏览器所在机器的hosts文件,手工添加解析将php.apps.example.com指向实验机器的IP地址。
Windows系统,请修改c:windowssystem32/drivers/etc/hosts文件。
Linux系统,请修改/etc/hosts文件。
在这个应用部署的例子中,我们通过选择一个预定义的应用部署模板,快速部署了一个CakePHP应用及一个MySQL数据库。整个部署的过程,不外乎几次鼠标单击。在实际的使用中,企业可以在服务目录中加入各种不同的应用服务模板,构建出企业内部软件市场式的服务目录。用户或管理员可以通过服务目录选取需要部署的软件应用模板,输入相应的参数,然后执行部署,相关的应用服务便会以容器的方式运行在指定的服务器集群上。这些应用服务可以是一个单体的应用,也可以包含多个不同的组件,如前文部署的示例,包含了一个前端PHP应用及一个后端MySQL数据库。通过软件市场式的服务目录,即使对OpenShift没有太多了解的用户,也能快速部署复杂的应用。作为一个容器云平台,OpenShift极大地提升了应用部署的效率,使得应用部署实现自动化及标准化。
应用部署出错了?别担心,可以通过项目左边的侧栏菜单打开Monitor界面查看项目后台的事件,排查相应的错误,如图2-22所示。

《开源容器云OpenShift:构建基于Kubernetes的企业应用云平台》一2.4 部署应用