《OpenShift 4.x HOL教程汇总》
说明:本文已经在OpenShift 4.10环境中验证

在OpenShift 4中提供了基于Knative的Serverless(无服务器架构)的运行环境,该环境相关资源是通过名为“OpenShift Serverless”的Operator创建的。本文说明如何创建一套基于Knative的Serverless运行环境。

安装步骤

  • 安装Knative环境
    • 安装OpenShift Serverless Operator
    • 安装Knative Serving环境
    • 安装Knative Eventing环境
  • 安装客户端
    • 安装Knative客户端
    • 安装其他客户端
  • 运行Hello应用验证Knative Serving环境
  • 查看“无服务器”控制台
  • 参考

安装Knative环境

安装OpenShift Serverless Operator

  1. 用集群管理员登录OpenShift Console控制台,进入Administrator视图。
  2. 进入Operators中的OperatorHub菜单,然后找到“OpenShift Serverless”,点击进入。
  3. 然后在右滑页面中点击Install。
  4. 在“Install Operator”页面中接受默认选项,再点击Install。
  5. 此后OpenShift会安装OpenShift Serverless环境,完成后可以在“Installed Operators”页面中查看安装完成的Red Hat OpenShift Serverless。

安装Knative Serving环境

  1. 如果此时没有名为knative-serving的项目,则创建它,然后再并切换到该项目。
  2. 进入前面创建的“OpenShift Serverless”,点击“Knative Serving”下方的Create Instance链接。
  3. 在“Create Knative Serving”页面用缺省配置创建一个“Knative Serving”。
kind: KnativeServing
apiVersion: operator.knative.dev/v1alpha1
metadata:name: knative-servingnamespace: knative-serving
spec: {}
  1. 执行命令查看Knative Serving状态,完成后应为以下状态:
$ oc get knativeserving.operator.knative.dev/knative-serving -n knative-serving --template='{{range .status.conditions}}{{printf "%s=%s\n" .type .status}}{{end}}'
DependenciesInstalled=True
DeploymentsAvailable=True
InstallSucceeded=True
Ready=True
VersionMigrationEligible=True
  1. 执行命令查看Knative Serving相关的Pod运行情况。
$ oc get pod -n knative-serving
NAME                                     READY   STATUS    RESTARTS   AGE
activator-75dfd89ddf-sbjhq                               2/2     Running     0          2m26s
activator-75dfd89ddf-zd9ln                               2/2     Running     0          2m26s
autoscaler-554f694ff7-8vpzc                              2/2     Running     0          2m26s
autoscaler-554f694ff7-hxqdn                              2/2     Running     0          2m26s
autoscaler-hpa-8459cdb7ff-lsxk9                          2/2     Running     0          2m23s
autoscaler-hpa-8459cdb7ff-tr8zl                          2/2     Running     0          2m23s
controller-9d97cfd75-jz6k4                               2/2     Running     0          2m17s
controller-9d97cfd75-tqvks                               2/2     Running     0          2m2s
domain-mapping-85f976d845-2sj6t                          2/2     Running     0          2m25s
domain-mapping-85f976d845-6r9pp                          2/2     Running     0          2m25s
domainmapping-webhook-6f86f7fdcf-54b4h                   2/2     Running     0          2m25s
domainmapping-webhook-6f86f7fdcf-gzl72                   2/2     Running     0          2m25s
storage-version-migration-serving-serving-0.26.0-wwz74   0/1     Completed   0          2m23s
webhook-745c7b586d-8s7tc                                 2/2     Running     0          2m24s
webhook-745c7b586d-wfgsk                                 2/2     Running     0          2m24s

安装Knative Eventing环境

  1. 如果此时没有名为knative-eventing的项目,则创建它,然后再并切换到该项目。
  2. 进入前面创建的“OpenShift Serverless”,点击“Knative Eventing”下方的Create Instance链接。
  3. 在“Create Knative Eventing”页面用缺省配置创建一个“Knative Eventing”。
kind: KnativeEventing
apiVersion: operator.knative.dev/v1alpha1
metadata:name: knative-eventingnamespace: knative-eventing
spec: {}
  1. 我们可以查看pod的资源,在部署完成应该有如下运行的pod。
NAME                                                    READY   STATUS      RESTARTS   AGE
eventing-controller-6f7bb85d7-jjz7d                     2/2     Running     0          3m18s
eventing-controller-6f7bb85d7-wxpq4                     2/2     Running     0          3m18s
eventing-webhook-5b55d5b588-pg7w2                       2/2     Running     0          3m17s
eventing-webhook-5b55d5b588-x6xs7                       2/2     Running     0          3m17s
imc-controller-7b788b9687-dndvc                         2/2     Running     0          3m13s
imc-controller-7b788b9687-tps8h                         2/2     Running     0          3m13s
imc-dispatcher-5976cc978-gx4sx                          2/2     Running     0          3m13s
imc-dispatcher-5976cc978-mndzq                          2/2     Running     0          3m13s
mt-broker-controller-76d66bb7bc-fdcgt                   2/2     Running     0          3m11s
mt-broker-controller-76d66bb7bc-k5272                   2/2     Running     0          3m11s
mt-broker-filter-7c88cb89b5-p77k4                       2/2     Running     0          3m12s
mt-broker-filter-7c88cb89b5-xj28v                       2/2     Running     0          3m12s
mt-broker-ingress-d5f9cbf49-5ggfz                       2/2     Running     0          3m11s
mt-broker-ingress-d5f9cbf49-wts6t                       2/2     Running     0          3m11s
strg-version-migration-eventing-eventing-0.26.0-xpnlt   0/1     Completed   0          3m10s
sugar-controller-6f8d87db6b-4qfxp                       2/2     Running     0          3m11s
sugar-controller-6f8d87db6b-qbnd4                       2/2     Running     0          3m11s
  1. 执行以下命令,查看knative-eventing对象的状态。
$ oc get knativeeventing.operator.knative.dev/knative-eventing -n knative-eventing --template='{{range .status.conditions}}{{printf "%s=%s\n" .type .status}}{{end}}'
DependenciesInstalled=True
DeploymentsAvailable=True
InstallSucceeded=True
Ready=True
VersionMigrationEligible=True

安装客户端

安装Knative客户端

执行命令下载Knative客户端程序。

$ curl -L https://mirror.openshift.com/pub/openshift-v4/clients/serverless/latest/kn-linux-amd64.tar.gz | tar -xzf -
$ sudo mv kn /usr/local/bin

安装其他客户端

执行命令下载以下客户端程序,它们会在后面操作中使用到。

$ curl -Lo stern https://github.com/wercker/stern/releases/download/1.9.0/stern_linux_amd64
$ curl -Lo hey https://hey-release.s3.us-east-2.amazonaws.com/hey_linux_amd64
$ curl -Lo yq https://github.com/mikefarah/yq/releases/download/3.2.1/yq_linux_amd64
$ chmod +x stern hey yq
$ sudo mv stern hey yq /usr/local/bin

运行Hello应用验证Knative Serving环境

将openshift/hello-openshift镜像作为Serverless的Service部署,然后访问验证。

$ oc new-project hello-openshift
$ kn service create hello-world --image=openshift/hello-openshift
Creating service 'hello-world' in namespace 'hello-openshift':0.237s The Route is still working to reflect the latest desired specification.0.267s Configuration "hello-world" is waiting for a Revision to become ready.27.592s ...27.780s Ingress has not yet been reconciled.27.880s Ready to serve.Service 'hello-world' created to latest revision 'hello-world-00001' is available at URL:
https://hello-world-hello-openshift.apps.cluster-229bt.229bt.sandbox886.opentlc.com$ kn route list
NAME          URL                                                                                   READY
hello-world   https://hello-world-hello-openshift.apps.cluster-229bt.229bt.sandbox886.opentlc.com   True$ curl $(kn route list hello-world --no-headers | awk 'NR==1 {print $2}')
Hello OpenShift!

查看“无服务器”控制台

以下是管理员的“无服务器”控制台:


参考

以下示例需要安装JDK11环境。
https://github.com/knative/docs/tree/main/code-samples/serving/hello-world/helloworld-java-spring

OpenShift 4 之Knative(1) - 创建Knative无服务器架构环境相关推荐

  1. 一文看懂当红Serverless:为何AWS、阿里云和腾讯云都在发力「无服务器架构」

    冠望 发自 凹非寺 量子位 报道 | 公众号 QbitAI 要说目前软件架构中热度十二分的话题,当属Serverless. 通常我们会将其翻译为"无服务器架构". 尽管成天被称为& ...

  2. c#服务器后端_一文看懂Serverless:AWS阿里云腾讯云都在发力「无服务器架构」

    冠望 发自 凹非寺 量子位 报道 | 公众号 QbitAI 要说目前软件架构中热度十二分的话题,当属Serverless. 通常我们会将其翻译为"无服务器架构". 尽管成天被称为& ...

  3. 【奋战云原生】无服务器架构的优点和缺点

    无服务器计算是一种执行模型, 云服务提供商 通过资源的动态分配,负责执行部分代码.在此模型中,客户只需为实际使用的资源量付费. 代码通常 运行在无状态容器 中,可以由各种事件触发,包括 HTTP 请求 ...

  4. 详细!看看顶级互联网公司都在研究的无服务器架构!

    无服务器计算(Severless computing,简称 Serverless)现在是软件架构圈中的热门话题,国外三大云计算供应商(Amazon.Google 和 Microsoft)都在大力投入这 ...

  5. 无服务器架构正在蚕食基础设施

    云计算时代出现了大量XaaS形式的概念,从IaaS.PaaS.SaaS 到容器云引领的CaaS,再到火热的微服务架构,它们都在试着将各种软.硬件资源等抽象为一种服务提供给开发者使用,让他们不再担心基础 ...

  6. Faas 和无服务器架构

    Faas 和无服务器架构 从IaaS.PaaS.SaaS到CaaS,再到火热的微服务架构,人们孜孜不倦的追求着将硬件资源抽象化,从虚拟机到容器, 再到现在的无服务器架构,FaaS是Functions ...

  7. 无服务器架构 - 从使用场景分析其6大特性

    2019独角兽企业重金招聘Python工程师标准>>> 无服务器架构 - 从使用场景分析其6大特性 博客分类: 架构 首先我应该提到,"无服务器"技术肯定有服务器 ...

  8. 无服务器架构_如何开始使用无服务器架构

    无服务器架构 Traditionally, when you wanted to build a web app or API, you'd usually have to spend signifi ...

  9. plsql无监听程序_详细!看看顶级互联网公司都在研究的无服务器架构!

    无服务器计算(Severless computing,简称 Serverless)现在是软件架构圈中的热门话题,国外三大云计算供应商(Amazon.Google 和 Microsoft)都在大力投入这 ...

最新文章

  1. 实战:基于深度学习的道路损坏检测
  2. 对ZNNT-5NM力矩传感器进行标定
  3. Django学习笔记之模板渲染、模板语言、simple_tag、母版子版、静态配置文件
  4. 【软考-软件设计师】编译程序基本原理
  5. 文件夹修改名字 matlab,matlab用 movefile更改文件夹内文件名字
  6. C#实现RTP数据包传输
  7. 私有云搭建 OpenStack(centos7.3, centos-release-openstack-ocata)
  8. 前端学习(1737):前端调试值测试窗口的切换
  9. etlgr是什么服务器_ETL是指什么 - 金融行业 - ITPUB论坛-中国专业的IT技术社区
  10. 信息学奥赛一本通(1281:最长上升子序列)
  11. 【多线程】什么是线程安全?
  12. 使用 Rust 构建分布式 Key-Value Store
  13. Linux内核源码如何学习?
  14. coreldraw sp2精简版 x4_coreldraw x4 sp2 精简版
  15. Java实现输出PDF
  16. QAC静态测试配置及使用教程
  17. 基本共射放大电路的动态分析以及放大电路Q点的稳定
  18. Outlook 2013 pst/ost邮件数据文件迁移实现
  19. python题库刷题网站_python在线刷题网站
  20. QQ图片文件夹说明及清理

热门文章

  1. 全国计算机一级考试试题大题,2016年全国计算机一级考试试题汇集
  2. html5+上下左右边界顺序,详解canvas绘制多张图的排列顺序问题
  3. android 多媒体文件信息,Android如何获取多媒体文件信息
  4. oracle 索引_分享三个Oracle数据库索引监控脚本,值得收藏
  5. 传统红色纹样图案背景|中式海报必备素材
  6. 水果手绘插画素材|一眼就想吃了!
  7. 可以参考临摹借鉴的中国风新年海报模板
  8. 设计潮流趋势|背景图案素材,增加设计对比和补充前景元素
  9. UI设计素材专辑|轻松解决键配色方案
  10. UI设计师应该知道的,APP设计师的辅助小工具网站集合导航