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

本文涉及的产品
容器镜像服务 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

相关实践学习
通过容器镜像仓库与容器服务快速部署spring-hello应用
本教程主要讲述如何将本地Java代码程序上传并在云端以容器化的构建、传输和运行。
Kubernetes极速入门
Kubernetes(K8S)是Google在2014年发布的一个开源项目,用于自动化容器化应用程序的部署、扩展和管理。Kubernetes通常结合docker容器工作,并且整合多个运行着docker容器的主机集群。 本课程从Kubernetes的简介、功能、架构,集群的概念、工具及部署等各个方面进行了详细的讲解及展示,通过对本课程的学习,可以对Kubernetes有一个较为全面的认识,并初步掌握Kubernetes相关的安装部署及使用技巧。本课程由黑马程序员提供。 &nbsp; 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情:&nbsp;https://www.aliyun.com/product/kubernetes
相关文章
|
3月前
|
存储 Kubernetes 持续交付
介绍一下Kubernetes的应用场景
【10月更文挑战第18天】介绍一下Kubernetes的应用场景。
239 3
|
28天前
|
人工智能 Kubernetes 安全
赋能加速AI应用交付,F5 BIG-IP Next for Kubernetes方案解读
赋能加速AI应用交付,F5 BIG-IP Next for Kubernetes方案解读
61 13
|
27天前
|
存储 Kubernetes 关系型数据库
阿里云ACK备份中心,K8s集群业务应用数据的一站式灾备方案
本文源自2024云栖大会苏雅诗的演讲,探讨了K8s集群业务为何需要灾备及其重要性。文中强调了集群与业务高可用配置对稳定性的重要性,并指出人为误操作等风险,建议实施周期性和特定情况下的灾备措施。针对容器化业务,提出了灾备的新特性与需求,包括工作负载为核心、云资源信息的备份,以及有状态应用的数据保护。介绍了ACK推出的备份中心解决方案,支持命名空间、标签、资源类型等维度的备份,并具备存储卷数据保护功能,能够满足GitOps流程企业的特定需求。此外,还详细描述了备份中心的使用流程、控制台展示、灾备难点及解决方案等内容,展示了备份中心如何有效应对K8s集群资源和存储卷数据的灾备挑战。
|
2月前
|
存储 运维 Kubernetes
K8s业务迁移最佳实践: 灵活管理资源备份与调整策略,实现高效简便的应用恢复
在当今快速变化的云原生领域,Kubernetes(K8s)集群的运维面临着诸多挑战,其中灾备与业务迁移尤为关键。ACK备份中心支持丰富的资源调整策略,在数据恢复阶段即可自动适配目标集群环境,确保业务无缝重启。
|
2月前
|
监控 持续交付 Docker
Docker 容器化部署在微服务架构中的应用有哪些?
Docker 容器化部署在微服务架构中的应用有哪些?
|
2月前
|
监控 持续交付 Docker
Docker容器化部署在微服务架构中的应用
Docker容器化部署在微服务架构中的应用
|
2月前
|
JavaScript 持续交付 Docker
解锁新技能:Docker容器化部署在微服务架构中的应用
【10月更文挑战第29天】在数字化转型中,微服务架构因灵活性和可扩展性成为企业首选。Docker容器化技术为微服务的部署和管理带来革命性变化。本文探讨Docker在微服务架构中的应用,包括隔离性、可移植性、扩展性、版本控制等方面,并提供代码示例。
70 1
|
3月前
|
JSON Kubernetes 容灾
ACK One应用分发上线:高效管理多集群应用
ACK One应用分发上线,主要介绍了新能力的使用场景
|
3月前
|
Prometheus Kubernetes 监控
k8s学习--kubernetes服务自动伸缩之水平伸缩(pod副本伸缩)HPA详细解释与案例应用
k8s学习--kubernetes服务自动伸缩之水平伸缩(pod副本伸缩)HPA详细解释与案例应用
151 1
k8s学习--kubernetes服务自动伸缩之水平伸缩(pod副本伸缩)HPA详细解释与案例应用
|
2月前
|
Kubernetes 监控 安全
容器化技术:Docker与Kubernetes的实战应用
容器化技术:Docker与Kubernetes的实战应用

相关产品

  • 容器服务Kubernetes版