Openshift 环境中使用 Knative Serving 部署无服务器应用程序

Knative CLI

Knative CLI(命令行界面)是一个用于与 Knative 交互的命令行工具。它提供了一组命令用于管理和操作 Knative Serving、Knative Eventing 和 Knative Build 等组件。

Knative CLI(kn)可以用于执行以下一些常见任务:

  1. 部署应用程序:使用 kn service create 命令可以部署一个 Knative Serving 服务。您可以指定容器镜像、自动伸缩策略、路由规则等参数。
  2. 更新应用程序:使用 kn service update 命令可以更新已部署的 Knative Serving 服务的配置。您可以修改容器镜像、环境变量、自动伸缩策略等参数。
  3. 扩展应用程序:使用 kn service scale 命令可以手动调整 Knative Serving 服务的副本数量,以实现水平扩展或缩减。
  4. 删除应用程序:使用 kn service delete 命令可以删除已部署的 Knative Serving 服务。
  5. 查看应用程序状态:使用 kn service describe 命令可以查看已部署的 Knative Serving 服务的详细信息,包括服务地址、副本数量、自动伸缩策略等。

安装 Knative CLI

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

若使用统信容器云管理平台(有雀)可通过 RPM 包的方式安装

$ yum install -y utccp-serverless-clients

部署无服务器应用程序

按照上一篇文章创建完成 OpenShift Serverless Operator、Knative Serving 、Knative Eventing 后

1. 编写您的无服务器应用程序代码。Knative Serving 支持多种编程语言和框架,例如Node.js、Python、Go等。根据您选择的语言和框架,编写一个简单的服务。以python为例的一个简单Hello World。

app.py:

from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello():
    return 'Hello, World!'

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=8080)
 

构建容器镜像:将应用程序代码打包到一个容器镜像中。创建一个 Dockerfile 来定义容器镜像的构建过程,并将应用程序代码复制到镜像中。确保您的镜像可以在您的 OpenShift 集群中访问到。

Dockerfile :

FROM 10.30.38.116/utccp-samples/python-39:1.3.0

WORKDIR /app
RUN pip install flask
COPY . .
CMD [ "python", "app.py" ]
 

# podman push docker.io/sunyuxuan/serverless-test:latest 

部署应用程序:使用Knative Serving的命令行工具(例如kn)或 YAML 或者在 OpenShift 的管理员视角创建。在部署时,指定 Knative Serving 的相关配置,例如自动伸缩策略、路由规则等。

使用 Kn 命令:

# kn service create my-serverless-app-1 --image docker.io/sunyuxuan/serverless-test:latest
Creating service 'my-serverless-app-1' in namespace 'syx-test':

  0.400s The Route is still working to reflect the latest desired specification.
  0.565s Configuration "my-serverless-app-1" is waiting for a Revision to become ready.
  9.358s ...
  9.520s Ingress has not yet been reconciled.
  9.708s Waiting for load balancer to be ready
  9.906s Ready to serve.

Service 'my-serverless-app-1' created to latest revision 'my-serverless-app-1-00001' is available at URL:
https://my-serverless-app-1-syx-test.apps.utccp.example.com

访问应用程序:一旦应用程序部署成功,您可以使用 Knative Serving 提供的服务域名来访问您的应用程序。Knative Serving 会为您的应用程序自动创建一个可访问的URL,您可以使用该 URL 来测试和访问您的无服务器应用程序。

# kn service describe my-serverless-app-1
Name:       my-serverless-app-1
Namespace:  syx-test
Age:        46m
URL:        https://my-serverless-app-1-syx-test.apps.utccp.example.com

Revisions:  
  100%  @latest (my-serverless-app-1-00001) [1] (46m)
        Image:     docker.io/sunyuxuan/serverless-test:latest (pinned to db822a)
        Replicas:  0/0

Conditions:  
  OK TYPE                   AGE REASON
  ++ Ready                  40m 
  ++ ConfigurationsReady    40m 
  ++ RoutesReady            40m 

# curl -k https://my-serverless-app-1-syx-test.apps.utccp.example.com
Hello, World!

在OpenShift 的管理员视角创建:

在Yaml 视图中输入应用程序的镜像点击创建

在开发者模式下的拓扑下我们可以观察到此应用并可以访问其提供的URL

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值