IBM Cloud Docs
将 Knative 与 Code Engine 配合使用

将 Knative 与 Code Engine 配合使用

IBM Cloud® Code Engine 设计为无需与它所构建的底层技术进行交互。 但是,如果您有基于 Knative 的现有工具,那么仍可以将其与 Code Engine配合使用。Code Engine 支持 Knative API (和 Kubernetes) 及其 CLI 命令。 有关 Kubernetes的更多信息,请参阅 将 Kubernetes 与 Code Engine配合使用

支持的 Knative 版本是什么?

Code Engine 支持 1.15 Knative API 及其 CLI 命令。

安装 Knative 命令行界面

要安装 Knative (kn),请下载并安装 Knative CLI

要将 Knative 与 Code Engine配合使用,必须首先设置环境以与 Code Engine的 Kubernetes API 进行交互。 有关更多信息,请参阅 安装 Kubernetes 命令行界面

有关 Kubernetes 和 Knative 以及它们如何使用 Code Engine 体系结构的更多信息,请参阅 了解 Code Engine 体系结构和工作负载隔离

与 Kubernetes API 交互

要通过 Kubernetes 命令行界面 kubectl 或 Knative 与项目进行交互,kn 必须设置环境以与 Code Engine的 Kubernetes API 进行交互。

准备工作

您可以通过以下方式设置环境。

  • 您可以将 --kubecfg 选项添加到 project select 命令。 例如

    ibmcloud ce project select --name PROJECT_NAME --kubecfg
    
  • 您可以直接导出 kubeconfig 文件。 运行 ibmcloud ce project current 命令以查找当前目标项目。 此命令还会返回 kubeconfig 文件的 export 命令。 例如

    ibmcloud ce project current
    

    示例输出

    Getting the current project context...
    OK
    
    Name:       myproject
    ID:         01234567-abcd-abcd-abcd-abcdabcd1111
    Subdomain:  aabon2dfwa0
    Domain:     us-south.codeengine.appdomain.cloud
    Region:     us-south
    Kubectl Context:  4svg40kna19
    
    Kubernetes Config:
    Context:             aabon2dfwa0
    Environment Variable: export KUBECONFIG=/user/myusername/.bluemix/plugins/code-engine/myproject-01234567-abcd-abcd-abcd-abcdabcd1111.yaml
    

    然后,复制导出命令,将其粘贴到命令行界面中,然后运行该命令。

通过运行 kubectl config 命令验证是否正确设置了环境。

kubectl config current-context

如果正确设置了上下文,那么输出将与项目的 Kubectl Context 值相匹配。 例如,如果项目的 Kubectl Context 值为 4svg40kna19,那么该命令将返回 4svg40kna19

有关 Kubernetes 及其如何使用 Code Engine 体系结构的更多信息,请参阅 了解 Code Engine 体系结构和工作负载隔离

使用 Knative API 所需的访问权限

设置环境后,可以与 Knative API 进行交互。 您必须具有特定任务的正确权限级别。 这些角色在身份和访问权管理中设置。 请参阅 IBM Cloud 服务角色

可持续发展机构
资源 管理者角色 写入者角色 读取者角色
services.serving.knative.dev get, list, watch, create, delete, update, patch, apply, edit get, list, watch, create, delete, update, patch, apply, edit get, list, watch
configurations.serving.knative.dev get, list, watch, create, delete, update, patch, apply, edit get, list, watch, create, delete, update, patch, apply, edit get, list, watch
routes.serving.knative.dev get, list, watch, create, delete, update, patch, apply, edit get, list, watch, create, delete, update, patch, apply, edit get, list, watch
revisions.serving.knative.dev get, list, watch, create, delete, update, patch, apply, edit get, list, watch, create, delete, update, patch, apply, edit get, list, watch
pingsource.serving.knative.dev get, list, watch, create, delete, update, patch, apply, edit get, list, watch, create, delete, update, patch, apply, edit get, list, watch
kafkasource.serving.knative.dev get, list, watch, create, delete, update, patch, apply, edit get, list, watch, create, delete, update, patch, apply, edit get, list, watch