11.2.5. 在集群中构建和部署功能


您可以使用 Knative(kn)CLI 启动功能项目构建,然后直接将功能部署到集群中。若要以这种方式构建功能项目,您的功能项目的源代码必须存在于可供集群访问的 Git 存储库分支中。

重要

OpenShift Serverless 功能只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。

有关红帽技术预览功能支持范围的详情,请参考 https://access.redhat.com/support/offerings/techpreview/

先决条件

  • 在集群中必须安装 Red Hat OpenShift Pipelines。
  • 已安装 OpenShift CLI(oc)。
  • 已安装 Knative(kn)CLI。

流程

  1. 在您要运行 Pipelines 和部署功能的每个命名空间中,您必须创建以下资源:

    1. 创建函数 buildpacks Tekton 任务,以便能构建功能镜像:

      $ oc apply -f https://raw.githubusercontent.com/openshift-knative/kn-plugin-func/serverless-1.22.0/pipelines/resources/tekton/task/func-buildpacks/0.1/func-buildpacks.yaml
      Copy to Clipboard Toggle word wrap
    2. 创建 kn func 部署 Tekton 任务,以便在管道中部署该功能:

      $ oc apply -f https://raw.githubusercontent.com/openshift-knative/kn-plugin-func/serverless-1.22.0/pipelines/resources/tekton/task/func-deploy/0.1/func-deploy.yaml
      Copy to Clipboard Toggle word wrap
  2. 创建功能:

    $ kn func create <function_name> -l <runtime>
    Copy to Clipboard Toggle word wrap
  3. 在创建了新的功能项目后,您必须将项目添加到 Git 存储库,并确保该存储库可供集群使用。关于此 Git 存储库的信息用于在下一步中更新 func.yaml 文件。
  4. 更新功能项目的 func.yaml 文件中的配置,以便为 Git 仓库启用 on-cluster 构建:

    ...
    build: git 
    1
    
    git:
      url: <git_repository_url> 
    2
    
      revision: main 
    3
    
      contextDir: <directory_path> 
    4
    
    ...
    Copy to Clipboard Toggle word wrap
    1
    必需。指定 git 构建类型。
    2
    必需。指定包含功能源代码的 Git 存储库。
    3
    可选。指定要使用的 Git 存储库修订。这可以是分支、标签或提交。
    4
    可选。如果函数没有位于 Git 存储库根文件夹中,请指定函数的目录的路径。
  5. 实施您功能的业务逻辑。然后,使用 Git 提交并推送更改。
  6. 部署功能:

    $ kn func deploy
    Copy to Clipboard Toggle word wrap

    如果您没有登录到功能配置中引用的容器 registry,系统会提示您为托管功能镜像的远程容器 registry 提供凭证:

    输出和提示示例

    🕕 Creating Pipeline resources
    Please provide credentials for image registry used by Pipeline.
    ? Server: https://index.docker.io/v1/
    ? Username: my-repo
    ? Password: ********
       Function deployed at URL: http://test-function.default.svc.cluster.local
    Copy to Clipboard Toggle word wrap

  7. 要更新功能,请使用 Git 提交并推送新的更改,然后再次运行 kn func deploy 命令。
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat