《OpenShift 4.x HOL教程汇总》
说明:本文已经在OpenShift 4.8环境中验证
架构
应急响应(Emergency Response - ER)应用运行在OpenShift之上,整个应用架构使用了红帽PaaS平台的 AMQ + Knative + Quay + BPM + BDM + SSO + DataGrid 等多种产品组件和技术。应用架构的主要组件和用到的相关产品见下图,
安装
- 创建以下对象,在Openshift的Operator Marketplace中注册“Emergency Response Demo Operator”。
$ oc apply -f - << EOF
apiVersion: operators.coreos.com/v1alpha1
kind: CatalogSource
metadata:
name: erdemo-operators
namespace: openshift-marketplace
spec:
sourceType: grpc
image: quay.io/emergencyresponsedemo/erdemo-operator-catalog:2.12.0
displayName: Emergency Response Demo Operator
publisher: RedHatGov
EOF
- 创建一个新项目来运行ER应用
$ oc new-project erdemo-operator-system
- 在“erdemo-operator-system”项目的管理员视图中找到“Emergency Response Demo Operator”,然后进入创建该Operator。
- 将“Emergency Response Demo Operator”安装到“erdemo-operator-system”项目中。
- 在创建完“Emergency Response Demo Operator”后进入该Operator,然后创建“ErDemo”。在“Create ErDemo”页面中根据下图的提示连接进入“https://account.mapbox.com/access-tokens”页面。
- 如果没有mapbox的账号则注册新用户,然后复制下图中“Default public token”的内容。将其复制到上图的“myToken”中,最后点击“Create”。
- “ER Demo Operator”负责创建应用需要的所有其他环境,包括Operator及其运行环境、部署应用等,因此整个部署过程需要20-30分钟,在执行完部署后会创建以下相关项目。
$ oc get project er-sso er-tools er-amq-streams-operator erdemo-operator-system user1-er-demo user1-er-monitoring user1-er-tools
NAME DISPLAY NAME STATUS
er-sso Active
er-tools Active
er-amq-streams-operator Active
erdemo-operator-system Active
user1-er-demo Active
user1-er-monitoring Active
user1-er-tools Active
- 在完成后可以确认运行环境。下图是“erdemo-operator-system”项目中安装的Operator。
下图是“erdemo-sso”项目中安装的Operator。
下图是“er-sso”项目中安装的资源。
下图是“er-tools”项目中安装的资源。
下图是“user1-er-demo”项目中运行的组件。
下图是“user1-er-demo”项目中运行的部署。
$ oc get dc -n user1-er-demo
NAME REVISION DESIRED CURRENT TRIGGERED BY
disaster-service 1 1 1 config,image(disaster-service:2.12)
disaster-simulator 1 1 1 config,image(disaster-simulator:2.12)
dw-postgresql 1 1 1 config,image(postgresql:12-el8)
emergency-console 1 1 1 config,image(emergency-console:2.12)
incident-priority-service 1 1 1 config,image(incident-priority-service:2.12)
incident-service 1 1 1 config,image(incident-service:2.12)
mission-service 1 1 1 config,image(mission-service:2.12)
postgresql 1 1 1 config,image(postgresql:12-el8)
process-service 1 1 1 config,image(process-service:2.12)
process-service-postgresql 1 1 1 config,image(postgres-10-decoderbufs:2.12)
process-viewer 1 1 1 config,image(process-viewer:2.12)
responder-client-app 1 1 1 config,image(responder-client-app:2.12)
responder-service 1 1 1 config,image(responder-service:2.12)
responder-simulator 1 1 1 config,image(responder-simulator:2.12)
下图是“user1-er-demo”项目中Route应用访问入口。
$ oc get route -n user1-er-demo
NAME HOST/PORT PATH SERVICES PORT TERMINATION WILDCARD
disaster-simulator user1-disaster-simulator.apps.cluster-8a53.8a53.sandbox1405.opentlc.com disaster-simulator 8080 None
emergency-console user1-emergency-console.apps.cluster-8a53.8a53.sandbox1405.opentlc.com emergency-console 8080 edge None
responder-client-app user1-responder-client-app.apps.cluster-8a53.8a53.sandbox1405.opentlc.com responder-client-app 8080 edge None
下图是 “user1-er-demo” 项目中 AMQ 中的资源。
下图是“user1-er-monitoring”项目中运行的Grafana和Prometheus资源。
![在这里插入图片描述](https://img-blog.csdnimg.cn/
下图是“uer1-er-monitoring”项目中Prometheus的监控资源。
演示
- 打开“user1-er-demo”项目的“emergency-console”路由访问地址。在下图中可以通过“Registry Now”注册一个新用户。
- 注册完用户可以登录访问“应急响应Demo应用”,其中在“Dashboard”页面中是没有数据的。
- 查看“user1-er-demo”项目的“disaster-simulator”路由地址,并用浏览器访问。在“Incidents and Responders”页面上的“Create Incidents”区域点击“Submit”。此后系统会生成模拟数据,再查看上图“Dashborad”页面会看到生成的应急事件。
- 进入“Mission”页面,在图中指定救援者自己所在的位置(如中蓝色图标),然后点击下方的“Available”。
- 如果当前附近有适合的应急求救人(图中黄色图标),系统将分配给代表救援者的登录用户,并提供导航路线。
- 在地图上会实时显示救援者的位置,当救援者达到被救着可以点击下方蓝色的“Picked up”。
- 在救援过程中可以点击上图弹出框中的“Process Diagram”可以显示下图,它反应了救援的流程当前处在哪一步了。
- 当救援者到达“救援目的地”后,将提示“Mission complete”。
- 同时此时也可从救援流程中看到救援已经完成。
参考
http://www.erdemo.io