This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.4.4.2. 关于 Knative CLI 离线模式
执行 kn service 命令时,更改会立即传播到集群。但是,作为替代方案,您可以在离线模式下执行 kn service 命令。当您以离线模式创建服务时,集群不会发生任何更改,而是在本地计算机上创建服务描述符文件。
Knative CLI 的离线模式只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
有关红帽技术预览功能支持范围的详情,请参考 https://access.redhat.com/support/offerings/techpreview/。
创建描述符文件后,您可以手动修改并在版本控制系统中跟踪该文件。您还可以使用 kn service create -f、kn service apply -f 或 oc apply -f 命令将更改传播到集群。
离线模式有几种用途:
- 在使用描述符文件对集群进行更改之前,您可以手动修改该文件。
- 您可以在本地跟踪版本控制系统中服务的描述符文件。这可让您在目标集群以外的位置重复使用描述符文件,例如在持续集成(CI)管道、开发环境或演示中。
-
您可以检查创建的描述符文件,以了解 Knative 服务的信息。特别是,您可以看到生成的服务如何受到传递给
kn命令的不同参数的影响。
离线模式有其优点:速度非常快,不需要连接到集群。但是,离线模式缺少服务器端验证。因此,您无法验证服务名称是否唯一,或者是否可以拉取指定镜像。
4.4.2.1. 使用离线模式创建服务 复制链接链接已复制到粘贴板!
您可以在离线模式下执行 kn service 命令,以便集群中不会发生任何更改,而是在本地机器上创建服务描述符文件。创建描述符文件后,您可以在向集群传播更改前修改该文件。
Knative CLI 的离线模式只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
有关红帽技术预览功能支持范围的详情,请参考 https://access.redhat.com/support/offerings/techpreview/。
先决条件
- 在集群中安装了 OpenShift Serverless Operator 和 Knative Serving。
-
已安装 Knative(
kn)CLI。
流程
在离线模式下,创建一个本地 Knative 服务描述符文件:
kn service create event-display \ --image quay.io/openshift-knative/knative-eventing-sources-event-display:latest \ --target ./ \ --namespace test$ kn service create event-display \ --image quay.io/openshift-knative/knative-eventing-sources-event-display:latest \ --target ./ \ --namespace testCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Service 'event-display' created in namespace 'test'.
Service 'event-display' created in namespace 'test'.Copy to Clipboard Copied! Toggle word wrap Toggle overflow --target ./标志启用脱机模式,并将./指定为用于存储新目录树的目录。如果您没有指定现有目录,但使用文件名,如
--target my-service.yaml,则不会创建目录树。相反,当前目录中只创建服务描述符my-service.yaml文件。文件名可以具有
.yaml、.yml或.json扩展名。选择.json以 JSON 格式创建服务描述符文件。namespace test选项将新服务放在test命名空间中。如果不使用
--namespace,并且您登录了 OpenShift 集群,则会在当前命名空间中创建描述符文件。否则,描述符文件会在default命名空间中创建。
检查创建的目录结构:
tree ./
$ tree ./Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
使用
--target指定的当前./目录包含新的test/目录,它在指定的命名空间后命名。 -
test/目录包含ksvc,它在资源类型后命名。 -
ksvc目录包含描述符文件event-display.yaml,它根据指定的服务名称命名。
-
使用
检查生成的服务描述符文件:
cat test/ksvc/event-display.yaml
$ cat test/ksvc/event-display.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 列出新服务的信息:
kn service describe event-display --target ./ --namespace test
$ kn service describe event-display --target ./ --namespace testCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow --target ./选项指定包含命名空间子目录的目录结构的根目录。另外,您可以使用
--target选项直接指定 YAML 或 JSON 文件名。可接受的文件扩展包括.yaml、.yml和.json。--namespace选项指定命名空间,与kn通信包含所需服务描述符文件的子目录。如果您不使用
--namespace,且您已登录到 OpenShift 集群,kn在以当前命名空间命名的子目录中搜索该服务。否则,kn在default/子目录中搜索。
使用服务描述符文件在集群中创建服务:
kn service create -f test/ksvc/event-display.yaml
$ kn service create -f test/ksvc/event-display.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow