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

简介:

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

相关实践学习
Docker镜像管理快速入门
本教程将介绍如何使用Docker构建镜像,并通过阿里云镜像服务分发到ECS服务器,运行该镜像。
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。 &nbsp; &nbsp; 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
Kubernetes Devops 应用服务中间件
基于 Azure DevOps 与阿里云 ACK 构建企业级 CI/CD 流水线
本文介绍如何结合阿里云 ACK 与 Azure DevOps 搭建自动化部署流程,涵盖集群创建、流水线配置、应用部署与公网暴露,助力企业高效落地云原生 DevOps 实践。
1371 2
|
缓存 Kubernetes Docker
GitLab Runner 全面解析:Kubernetes 环境下的应用
GitLab Runner 是 GitLab CI/CD 的核心组件,负责执行由 `.gitlab-ci.yml` 定义的任务。它支持多种执行方式(如 Shell、Docker、Kubernetes),可在不同环境中运行作业。本文详细介绍了 GitLab Runner 的基本概念、功能特点及使用方法,重点探讨了流水线缓存(以 Python 项目为例)和构建镜像的应用,特别是在 Kubernetes 环境中的配置与优化。通过合理配置缓存和镜像构建,能够显著提升 CI/CD 流水线的效率和可靠性,助力开发团队实现持续集成与交付的目标。
|
传感器 人工智能 安全
AR 巡检在工业的应用|阿法龙XR云平台
AR巡检技术广泛应用于电力、石化、制造、交通等行业,通过AR眼镜或平板实时叠加设备参数、历史数据及操作指引,提升巡检效率与准确性。支持远程协作、自动记录分析,并可在高危环境实现无人巡检,大幅降低安全风险,推动智能化运维升级。
|
存储 监控 对象存储
ACK 容器监控存储全面更新:让您的应用运行更稳定、更透明
针对本地存储和 PVC 这两种容器存储使用方式,我们对 ACK 的容器存储监控功能进行了全新升级。此次更新完善了对集群中不同存储类型的监控能力,不仅对之前已有的监控大盘进行了优化,还针对不同的云存储类型,上线了全新的监控大盘,确保用户能够更好地理解和管理容器业务应用的存储资源。
991 284
|
机器学习/深度学习 人工智能 自然语言处理
基于星海智算云平台部署 DeepSeek-R1系列 70b 模型全攻略(附平台福利)
本文介绍了如何在星海智算云平台上部署DeepSeek-R1系列70B模型,解决官网访问不畅的问题。通过云端部署,用户可以按需付费,避免本地部署高昂成本(高达两百多万)。文章详细讲解了从实例创建到开始使用DeepSeek的八个步骤,并提供了成本优化技巧和新手注意事项。推荐使用双A100显卡,每小时费用仅13.32元。新用户还可领取福利,享受高性价比服务。立即注册体验:[星海智算云平台](https://gpu.spacehpc.com/user/register?inviteCode=52872508)。
1482 1
基于星海智算云平台部署 DeepSeek-R1系列 70b 模型全攻略(附平台福利)
|
监控 持续交付 Docker
Docker容器化部署在微服务架构中的应用
Docker容器化部署在微服务架构中的应用
834 60
|
数据采集 人工智能 算法
建筑矿山设备工厂如何应用MyEMS开源能源云平台
建筑矿山设备工厂是一家全球领先的采矿和基础设施技术公司,1993年在南京设立首家中国工厂,专注于研发与生产露天凿岩设备、地下采矿设备等。2014年将中国区总部迁至南京,进一步深化本土化战略。MyEMS开源能源管理系统基于ISO 50001标准,提供电、水、气等多能源介质的采集、分析与优化功能,助力工厂实现能耗透明化、碳排放管理及能效提升。项目成果显著,通过AI驱动的能效模型和预测性维护,实现年度电费节省超50万元,碳排放强度下降12%。未来计划进一步整合微电网与智能化技术,推动绿色智能制造转型。
312 0
|
存储 监控 对象存储
ACK容器监控存储全面更新:让您的应用运行更稳定、更透明
介绍升级之后的ACK容器监控体系,包括各大盘界面展示和概要介绍。
|
Kubernetes 持续交付 开发工具
阿里云协同万兴科技落地ACK One GitOps方案,全球多机房应用自动化发布,效率提升50%
阿里云协同万兴科技落地ACK One GitOps方案,全球多机房应用自动化发布,效率提升50%
1176 2
|
Kubernetes 持续交付 开发工具
阿里云协同万兴科技落地ACK One GitOps方案,全球多机房应用自动化发布,效率提升50%
阿里云协同万兴科技落地ACK One GitOps方案,全球多机房应用自动化发布,效率提升50%

相关产品

  • 容器服务Kubernetes版
  • 推荐镜像

    更多