《开源容器云OpenShift:构建基于Kubernetes的企业应用云平台》一2.2 运行第一个容器应用

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介:

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

2.2 运行第一个容器应用

OpenShift服务成功启动后,现在可以尝试运行你的第一个容器应用了!


6ad70f7343fade9727efe0aea785fa6b1afe3de1

2.2.1 创建项目

在部署应用前,先要为应用创建一个项目,即Project对象。项目是OpenShift中的一种资源组织方式。对一般用户而言,不同类型的相关资源可以被归属到某一个项目中进行统一管理。对管理员来说,项目是配额管理和网络隔离的基本单位。
以dev用户登录OpenShift的Web控制台。单击页面中的New Project按钮创建一个新的项目。在创建项目页面输入项目名hello-world,展示名称填入Hello World。单击Create按钮创建项目,如图2-3所示。

image

2.2.2 部署Docker镜像

现在马上可以部署你的第一个容器应用了。前文曾介绍到OpenShift是以原生的Docker作为平台的容器引擎,因此只要是有效的Docker镜像,均可以运行于OpenShift容器云平台之上。
Docker默认允许容器以root用户的身份执行容器内的程序。OpenShift对容器的安全比Docker有更谨慎的态度。OpenShift默认在启动容器应用时使用非root用户。这可能会导致一些Docker镜像在OpenShift平台上启动时报出Permission denied的错误。别担心,其实只需要稍稍修改OpenShift的安全配置,即可解决这个问题。具体修改我们会在后面的章节介绍。但是请记住,在制作自己的Docker镜像时,建议避免使用root用户启动容器内的应用,以降低安全风险。
下面在OpenShift上运行DockerHub上的hello-openshift镜像。单击页面上方的Deploy Image页签,如图2-4所示。
在部署镜像页面,单击Image Name单选按钮,并输入镜像名称openshift/hello-
openshift,然后单击放大镜按钮,如图2-5所示。单击按钮后OpenShift将根据输入的镜像名称在DockerHub及配置了的镜像仓库中查找该名称的容器镜像。

image

image

请保证实验用的虚拟机能连接上互联网,以访问DockerHub仓库下载所需镜像。
片刻之后,OpenShift将找到我们指定的镜像,并加载镜像的信息。浏览信息后,单击页面下方的Create按钮进行部署,如图2-6所示。此时OpenShift将会在后台创建部署此容器镜像的相关对象。
确认部署后,页面将转跳到一个部署完成页面,如图2-7所示。单击页面上的Continue
to overview链接转跳到Hello World项目的主页。
在Hello World项目的主页,你会看到界面上有一个空心的圆圈,圆圈中间有一个大大的数字0,如图2-8所示。这表示OpenShift正在部署容器镜像并实例化容器,当前就绪的容器数量为0。

image

image

image

当第一次部署某个容器应用时,由于需要到DockerHub上下载镜像文件,所以需要等待一定的时间。所需时间视实验主机所在网络的网速而定。如果在创建容器应用的过程中出现了Image Pull Error的状态,可以尝试手工下载镜像。检查Docker能否正常连接上DockerHub及其镜像站点。

docker pull docker.io/openshift/hello-openshift
docker pull docker.io/openshift/origin-deployer:v1.3.0
docker pull docker.io/openshift/origin-pod:v1.3.0
AI 代码解读

稍等片刻后,hello-openshift容器会成功启动。可以看到项目主页上的圆圈变成了蓝色,容器计数从“0”变成了“1”,如图2-9所示。这说明容器已经成功启动了,当前有“1”个在运行的实例。

image
恭喜,您已经成功在OpenShift上运行了您的第一个容器应用!

2.2.3 访问容器应用

容器启动后,用户就可以尝试访问这个容器实例中运行的应用服务了。当容器启动后,每个容器实例都会被赋予一个内部的IP地址,用户可以通过这个地址访问容器。
单击界面上的圆圈将转跳到hello-open-
shift容器的实例列表,单击列表中的容器进入容器详情页面。在详情页面可以看到当前的容器被分配了一个IP地址,如图2-10中的172.17.0.3。
回到实验的主机上,执行下面的命令就可以访问hello-openshift容器提供的服务。hello-openshift中运行着一个简单的用Go语言编写的应用。其监听在8080端口,并为所有请求返回字符串Hello Open-Shift!。


5f9b180a51dc14d2e35911bfc77f326e38b94bbc
[root@masteropenshift]# curl 172.17.0.3:8080
Hello OpenShift!
AI 代码解读

如上面的输出所示,容器应用成功返回了Hello OpenShift!。这表明,我们的容器应用工作正常。

2.2.4 一些疑问

在实验的主机上,我们通过命令curl 172.17.0.3:8080成功访问了应用。但是如果在另一台主机上执行相同的命令,就会发现无法访问到这个服务。别着急,这是因为172.17.0.3是一个内部的IP地址,只存在于OpenShift集群当中。OpenShift集群之外的机器将无法识别这个IP地址。那么,集群外的机器该如何访问我们的容器服务呢?这里先买个关子,在后面的章节里,我们将会慢慢揭晓答案。
此外,本例的安装只是针对一台主机,这样的环境适合作为开发环境使用。对于多主机集群的安装,请参考第11章。
至此,我们安装了一个单节点的OpenShift集群,并运行了一个名为hello-openshift的容器镜像。hello-openshift是一个非常简单的容器应用。在hello-openshift的容器启动时会运行一个用Go语言编写的程序,这个程序将会持续监听在8080端口,响应任何输入请求并返回字符串“Hello OpenShift!”。接下来,我们将部署一个更加复杂且有趣的容器应用,并一起探索OpenShift为部署的容器应用提供了哪些后台支持。

相关实践学习
通过容器镜像仓库与容器服务快速部署spring-hello应用
本教程主要讲述如何将本地Java代码程序上传并在云端以容器化的构建、传输和运行。
Kubernetes极速入门
Kubernetes(K8S)是Google在2014年发布的一个开源项目,用于自动化容器化应用程序的部署、扩展和管理。Kubernetes通常结合docker容器工作,并且整合多个运行着docker容器的主机集群。 本课程从Kubernetes的简介、功能、架构,集群的概念、工具及部署等各个方面进行了详细的讲解及展示,通过对本课程的学习,可以对Kubernetes有一个较为全面的认识,并初步掌握Kubernetes相关的安装部署及使用技巧。本课程由黑马程序员提供。   相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
目录
打赏
0
0
0
0
1408
分享
相关文章
ACK 容器监控存储全面更新:让您的应用运行更稳定、更透明
针对本地存储和 PVC 这两种容器存储使用方式,我们对 ACK 的容器存储监控功能进行了全新升级。此次更新完善了对集群中不同存储类型的监控能力,不仅对之前已有的监控大盘进行了优化,还针对不同的云存储类型,上线了全新的监控大盘,确保用户能够更好地理解和管理容器业务应用的存储资源。
404 199
容器化浪潮下的AI赋能:智能化运维与创新应用
近年来,容器技术以其轻量、高效、可移植的特性成为云原生时代的基石,推动应用开发和部署方式革新。随着容器化应用规模扩大,传统运维手段逐渐力不从心。AI技术的引入为容器化生态带来新活力,实现智能监控、自动化故障诊断与修复及智能资源调度,提升运维效率和可靠性。同时,AI驱动容器化创新应用,如模型训练、边缘计算和Serverless AI服务,带来更多可能性。未来,AI与容器技术的融合将更加紧密,推动更智能、高效的运维平台和丰富的创新应用场景,助力数字化转型。
容器化AI模型的监控与治理:确保模型持续稳定运行
在前几篇文章中,我们探讨了AI模型的容器化部署及构建容器化机器学习流水线。然而,将模型部署到生产环境只是第一步,更重要的是确保其持续稳定运行并保持性能。为此,必须关注容器化AI模型的监控与治理。 监控和治理至关重要,因为AI模型在生产环境中面临数据漂移、概念漂移、模型退化和安全风险等挑战。全面的监控涵盖模型性能、数据质量、解释性、安全性和版本管理等方面。使用Prometheus和Grafana可有效监控性能指标,而遵循模型治理最佳实践(如建立治理框架、定期评估、持续改进和加强安全)则能进一步提升模型的可信度和可靠性。总之,容器化AI模型的监控与治理是确保其长期稳定运行的关键。
ACK 容器监控存储全面更新:让您的应用运行更稳定、更透明
ACK 容器监控存储全面更新:让您的应用运行更稳定、更透明
ACK 容器监控存储全面更新:让您的应用运行更稳定、更透明
ACK 容器监控存储全面更新:让您的应用运行更稳定、更透明
如何在宿主主机运行容器中的php守护进程
在Docker容器中同时运行多个程序(如Nginx+PHP+Ftp)时,需用`docker exec`命令启动额外服务。首先通过`php -v`查看PHP版本,再用`which php-fpm7.4`确认PHP安装路径,通常返回`/usr/sbin/php-fpm7.4`。最后直接运行该路径启动PHP-FPM服务,确保其正常工作。
69 14
容器技术实践:在Ubuntu上使用Docker安装MySQL的步骤。
通过以上的操作,你已经步入了Docker和MySQL的世界,享受了容器技术给你带来的便利。这个旅程中你可能会遇到各种挑战,但是只要你沿着我们划定的路线行进,你就一定可以达到目的地。这就是Ubuntu、Docker和MySQL的灵魂所在,它们为你开辟了一条通往新探索的道路,带你亲身感受到了技术的力量。欢迎在Ubuntu的广阔大海中探索,用Docker技术引领你的航行,随时准备感受新技术带来的震撼和乐趣。
97 16
zabbix7.0.9安装-以宝塔安装形式-非docker容器安装方法-系统采用AlmaLinux9系统-最佳匹配操作系统提供稳定运行环境-安装教程完整版本-优雅草卓伊凡
zabbix7.0.9安装-以宝塔安装形式-非docker容器安装方法-系统采用AlmaLinux9系统-最佳匹配操作系统提供稳定运行环境-安装教程完整版本-优雅草卓伊凡
136 30
自学软硬件第755 docker容器虚拟化技术youtube视频下载工具
docker容器虚拟化技术有什么用?怎么使用?TubeTube 项目使用youtube视频下载工具

相关产品

  • 容器服务Kubernetes版
  • AI助理

    你好,我是AI助理

    可以解答问题、推荐解决方案等