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

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
容器镜像服务 ACR,镜像仓库100个 不限时长
简介:
+关注继续查看

本节书摘来自华章出版社《开源容器云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所示。

image

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

image

4)单击模板参数输入页面底部的Create按钮,执行部署,如图2-16所示。
image

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

image

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

image

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

image

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应用已经启动完毕。

image

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

image

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所示。

image

相关实践学习
通过workbench远程登录ECS,快速搭建Docker环境
本教程指导用户体验通过workbench远程登录ECS,完成搭建Docker环境的快速搭建,并使用Docker部署一个Nginx服务。
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。 &nbsp; &nbsp; 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
5月前
|
移动开发 运维 监控
低代码开发云平台源码,支持多种企业应用场景,快速构建CRM、ERP、OA、BI、IoT、大数据应用程序
基于 moleculer 微服务架构开发,提供微服务的应用开发、配置管理、服务注册与发现、服务认证与授权、服务网关、服务监控、统一日志分析等,提供微服务应用的开发、部署、监控、运维等应用生命周期管理。
低代码开发云平台源码,支持多种企业应用场景,快速构建CRM、ERP、OA、BI、IoT、大数据应用程序
|
11月前
|
容灾
《云迁移与云容灾-构建混合驱动的云平台-引领体验至上的数字化转型》电子版地址
云迁移与云容灾-构建混合驱动的云平台-引领体验至上的数字化转型
48 0
《云迁移与云容灾-构建混合驱动的云平台-引领体验至上的数字化转型》电子版地址
|
弹性计算 安全 Windows
基于阿里云云平台构建IPS入侵防御系统实现安全流量实时分析
Snort 是一个开源入侵防御系统(IPS),Snort IPS 使用一系列规则来帮助定义恶意网络活动,并利用这些规则来查找与之匹配的数据包,并为用户生成警报,Snort 也可以在线部署来阻止这些数据包。Snort有三个主要用途。作为一个像tcpdump一样的数据包嗅探器,作为一个数据包记录器--这对网络流量调试很有用,或者它可以作为一个完整的网络入侵防御系统,本篇文章将带着大家通过阿里云云平台来搭建一个开源入侵防御系统去实现安全流量的实时分析
775 0
基于阿里云云平台构建IPS入侵防御系统实现安全流量实时分析
|
安全 关系型数据库 MySQL
基于阿里云云平台构建安全攻防靶场演练系统
我们将在“现有的阿里云云平台上”去使用Pikachu去构建安全攻防靶场,Pikachu是使用世界上最好的语言PHP进行开发,数据库使用的是mysql,因此运行Pikachu需要提前安装好"PHP+MYSQL+中间件(如apache,nginx等)"的基础环境,这样的话,才能在去搭建Pikachu哦,那么请大家跟随我一起学习基于云平台的安全攻防靶场系统构建吧~
1030 0
基于阿里云云平台构建安全攻防靶场演练系统
|
人工智能 城市大脑 运维
阿里云混合云重磅升级 助力客户构建建、管、用一体化的全栈云平台
2020年9月18日,继今年6月9号阿里云混合云(Alibaba Cloud Hybrid Cloud)正式对外发布,今天在2020云栖大会上,阿里云混合云再次宣布重磅升级。阿里云混合云源于亚太第一的阿里云公共云,是首个大规模成熟商用的原生混合云平台,提供稳定、安全、开放、智能的产品和解决方案,是政企客户实现数字化转型的IT基础设施。本次从助力客户建好云、管好云、用好云三个维度全面升级,旨在为客户提供全栈建云、智能管云和极致用云的一体化平台。
2344 0
阿里云混合云重磅升级 助力客户构建建、管、用一体化的全栈云平台
|
大数据
山西晋城携手阿里构建城市云平台,66个政务系统已上云
9月3日,阿里云数字中国行•晋城峰会期间,晋城市人民政府公布了与阿里云共同打造的数字晋城的最新建设成果。
1653 0
|
监控 Kubernetes 中间件
DockOne微信分享(七十九):基于容器技术构建企业级PaaS云平台实践
本文讲的是DockOne微信分享(七十九):基于容器技术构建企业级PaaS云平台实践【编者的话】企业级容器化PaaS平台旨在为企业应用提供底层支撑能力,覆盖应用开发、应用交付、上线运维等环节,包括代码的管理、持续集成、自动化测试、交付物管理、应用托管、中间件服务、自动化运维、监控报警、日志处理等,本次分享主要介绍基于容器技术构建PaaS平台所采用的相关技术、涉及的核心功能模块以及相关方案。
2620 0
|
人工智能 物联网 前端开发
相关产品
容器服务Kubernetes版
推荐文章
更多