Knative CLI
Knative CLI(命令行界面)是一个用于与 Knative 交互的命令行工具。它提供了一组命令用于管理和操作 Knative Serving、Knative Eventing 和 Knative Build 等组件。
Knative CLI(kn)可以用于执行以下一些常见任务:
- 部署应用程序:使用 kn service create 命令可以部署一个 Knative Serving 服务。您可以指定容器镜像、自动伸缩策略、路由规则等参数。
- 更新应用程序:使用 kn service update 命令可以更新已部署的 Knative Serving 服务的配置。您可以修改容器镜像、环境变量、自动伸缩策略等参数。
- 扩展应用程序:使用 kn service scale 命令可以手动调整 Knative Serving 服务的副本数量,以实现水平扩展或缩减。
- 删除应用程序:使用 kn service delete 命令可以删除已部署的 Knative Serving 服务。
- 查看应用程序状态:使用 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 registry.uniontech.com/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