3.4. 部署前端应用程序


在 OpenShift Container Platform 中部署应用程序的最简单方法是运行提供的容器镜像。

以下流程部署 parksmap,这是 national-parks-app 应用的前端组件。Web 应用显示全球国家公园位置的交互式地图。

先决条件

  • 有访问 OpenShift Container Platform 集群的权限。
  • 已安装 OpenShift CLI(oc)。

流程

  • 运行以下命令部署 parksmap 应用程序:

    $ oc new-app quay.io/openshiftroadshow/parksmap:latest --name=parksmap -l 'app=national-parks-app,component=parksmap,role=frontend,app.kubernetes.io/part-of=national-parks-app'
    Copy to Clipboard Toggle word wrap

    输出示例

    --> Found container image 0c2f55f (4 years old) from quay.io for "quay.io/openshiftroadshow/parksmap:latest"
    
        * An image stream tag will be created as "parksmap:latest" that will track this image
    
    --> Creating resources with label app=national-parks-app,app.kubernetes.io/part-of=national-parks-app,component=parksmap,role=frontend ...
        imagestream.image.openshift.io "parksmap" created
        deployment.apps "parksmap" created
        service "parksmap" created
    --> Success
        Application is not exposed. You can expose services to the outside world by executing one or more of the commands below:
         'oc expose service/parksmap'
        Run 'oc status' to view your app.
    Copy to Clipboard Toggle word wrap

3.4.1. 公开前端服务

默认情况下,在 OpenShift Container Platform 上运行的服务无法从外部访问。

要公开您的服务,以便外部客户端可以访问该服务,您可以创建一个 路由Route 对象是类似于 Kubernetes Ingress 对象的 OpenShift Container Platform 网络资源。默认的 OpenShift Container Platform 路由器(HAProxy)使用传入请求的 HTTP 标头来确定连接的位置。

另外,您可以为路由定义安全性,如 TLS。

先决条件

  • 您已部署了 parksmap 前端应用程序。
  • cluster-admin 或项目级别的 admin 权限。

流程

  • 运行以下命令,创建一个路由来公开 parksmap 前端应用程序:

    $ oc create route edge parksmap --service=parksmap
    Copy to Clipboard Toggle word wrap

验证

  • 运行以下命令验证应用程序路由是否已成功创建:

    $ oc get route parksmap
    Copy to Clipboard Toggle word wrap

    输出示例

    NAME        HOST/PORT                                                   PATH   SERVICES   PORT       TERMINATION   WILDCARD
    parksmap    parksmap-user-getting-started.apps.cluster.example.com             parksmap   8080-tcp   edge          None
    Copy to Clipboard Toggle word wrap

3.4.2. 查看 pod 详情

OpenShift Container Platform 使用 Kubernetes 的 pod 概念,它是共同部署在同一主机上的一个或多个容器,也是可被定义、部署和管理的最小计算单元。对容器而言,Pod 大致相当于一个机器实例(物理或虚拟)。

您可以查看集群中的 pod,并确定这些 pod 和整个集群的健康状态。

先决条件

  • 您已部署了 parksmap 前端应用程序。

流程

  • 运行以下命令,列出当前项目中的所有 pod:

    $ oc get pods
    Copy to Clipboard Toggle word wrap

    输出示例

    NAME                       READY   STATUS    RESTARTS   AGE
    parksmap-5f9579955-6sng8   1/1     Running   0          77s
    Copy to Clipboard Toggle word wrap

  • 运行以下命令显示 pod 的详情:

    $ oc describe pod parksmap-5f9579955-6sng8
    Copy to Clipboard Toggle word wrap

    输出示例

    Name:             parksmap-5f9579955-6sng8
    Namespace:        user-getting-started
    Priority:         0
    Service Account:  default
    Node:             ci-ln-fr1rt92-72292-4fzf9-worker-a-g9g7c/10.0.128.4
    Start Time:       Wed, 26 Mar 2025 14:03:19 -0400
    Labels:           app=national-parks-app
                      app.kubernetes.io/part-of=national-parks-app
                      component=parksmap
                      deployment=parksmap
                      pod-template-hash=848bd4954b
                      role=frontend
    ...
    Copy to Clipboard Toggle word wrap

  • 运行以下命令,查看 pod 的日志:

    $ oc logs parksmap-5f9579955-6sng8
    Copy to Clipboard Toggle word wrap

    输出示例

    ...
    2025-03-26 18:03:24.774  INFO 1 --- [           main] o.s.m.s.b.SimpleBrokerMessageHandler     : Started.
    2025-03-26 18:03:24.798  INFO 1 --- [           main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8080 (http)
    2025-03-26 18:03:24.801  INFO 1 --- [           main] c.o.evg.roadshow.ParksMapApplication     : Started ParksMapApplication in 4.053 seconds (JVM running for 4.46)
    Copy to Clipboard Toggle word wrap

3.4.3. 扩展部署

在 Kubernetes 中,Deployment 对象定义了应用的部署方式。在大多数情况下,当部署应用程序时,OpenShift Container Platform 会为您创建 PodServiceReplicaSetDeployment 资源。

当您部署 parksmap 镜像时,会创建一个部署资源。在本例中,只部署了一个 pod。您可能需要扩展应用程序,以便满足用户需求或确保应用程序始终运行,即使一个 pod 停机也是如此。

以下流程将 parksmap 部署扩展到使用两个实例。

先决条件

  • 您已部署了 parksmap 前端应用程序。

流程

  • 运行以下命令,将部署从一个 pod 实例扩展到两个 pod 实例:

    $ oc scale --replicas=2 deployment/parksmap
    Copy to Clipboard Toggle word wrap

    输出示例

    deployment.apps/parksmap scaled
    Copy to Clipboard Toggle word wrap

验证

  • 运行以下命令验证您的部署是否已正确扩展:

    $ oc get pods
    Copy to Clipboard Toggle word wrap

    输出示例

    NAME                       READY   STATUS    RESTARTS   AGE
    parksmap-5f9579955-6sng8   1/1     Running   0          7m39s
    parksmap-5f9579955-8tgft   1/1     Running   0          24s
    Copy to Clipboard Toggle word wrap

    验证是否列出了两个 parksmap pod。

提示

要将部署缩减为一个 pod 实例,请将 1 传递给 副本 选项:

$ oc scale --replicas=1 deployment/parksmap
Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat