安装 Knative¶
本页面为 Kubernetes 管理员提供了如何在现有 Kubernetes 集群上安装 Knative 的指导。Knative 有三个组件:Eventing、Serving 和 Functions。Serving 和 Eventing 安装在集群中。Functions 不安装在集群中,因为客户端 func CLI 工具将无状态函数构建和部署为标准容器。
Knative 安装假设您熟悉以下内容:
- Kubernetes 和 Kubernetes 管理。
kubectlCLI 工具。您可以使用现有的 Kubernetes 管理工具(策略、配额等)来管理 Knative 工作负载。- 使用
cluster-admin权限或同等权限在命名空间中的所有集群中安装软件和管理资源。有关权限的信息,请参阅 使用 RBAC 授权。 - 建议熟悉云原生计算基金会 (CNCF) 项目,例如 Prometheus、Istio 和 Strimzi,其中许多项目都可以与 Knative 一起使用。
您可以独立安装 Serving 和 Eventing 组件。您也可以随时添加和删除插件,以及可选的集成工具,这些工具涵盖可观察性、安全性和测试。插件在可扩展性部分进行描述。
安装路线图¶
使用下表确定您的安装方法。如果您目前只是想了解 Knative 功能,请安装快速入门。
| 快速入门 | 基于 YAML | Knative Operator | |
|---|---|---|---|
| 目的 | 本地 | 生产 | 生产 |
| Kubernetes 部署 | 本地,可以是 kind 或 Minikube |
现有 | 现有 |
| 硬件 | 3 个 CPU,3 GB 内存 | 一个节点 6 个 CPU,6 GB 内存,30 GB 磁盘存储。 多个节点 每个 2 个 CPU,4 GB 内存,20 GB 磁盘存储。 |
与基于 YAML 相同 |
支持的平台是 Linux、macOS 和 Windows。
Knative Operator 是一个自定义控制器,它扩展了 Kubernetes API 以安装 Knative 组件。有关基于 YAML 的安装和使用 Knative Operator 的安装的更多信息,请参阅YAML 和 Knative Operator 安装比较。
根据您的安装方法,使用以下步骤安装 Knative
快速入门:
- 安装 CLI 工具。
- 安装 Knative 快速入门插件。
基于 YAML:
使用所有 YAML 文件安装。如果您使用 GitOps 工具(如 Flux 或 ArgoCD)应用已签入 Git 仓库的清单,此选项最有用。这是最低限度的方法,可让您对过程和资源定义进行精细控制。
- 安装 CLI 工具。
- 安装一个或两个组件
- 安装 Knative Serving。
- 安装 Knative Eventing。
Knative Operator:
使用 Knative Operator(作为清单或 Helm)安装,或者使用随 Knative Operator CLI 插件安装的 Knative Operator 安装。
- 安装 CLI 工具,包括 Knative Operator CLI 插件。
- 通过以下任一方式安装 Serving 和 Eventing 组件:
- 使用 Kubernetes 清单或通过 Helm 的 Knative Operator。
- 通过 Knative Operator CLI。
所有安装都需要支持的 Kubernetes 版本。提供的系统要求仅供参考。您的安装要求可能因您使用的插件组件而异。
有关商业 Knative 产品列表,请参阅 Knative 产品。
YAML 和 Knative Operator 安装比较¶
您可以使用 Knative Operator 辅助或不辅助地使用 YAML 文件和其他资源安装 Knative。Knative Operator 允许您自动化应用、修补和自定义内容。
Knative Operator 简化了安装复杂性,并与 GitOps 方法兼容。它还将核心 Knative 应用程序定义与您进行的 ConfigMap 和其他更改分离开来。您可以通过使用 Knative CLI Operator 插件、Kubernetes 清单或 Helm 安装 Knative Operator。
以下是使用 YAML 或 Knative Operator 安装的注意事项:
| 基于 YAML 的安装 | Knative Operator 安装 |
|---|---|
| 您可以准确地看到您得到什么。 | 您在更高级别指定选择。 |
| 您可以通过直接编辑来调整任何参数。 | 并非所有设置都已公开。 |
| 如果您进行了更改,则在升级时必须跟踪您更改了什么。 | 很容易将您的自定义项与基本安装分开。 |
| 由于 YAML 文件存储在 GitHub 仓库中,因此可以进行版本和审计控制。 | 使用命令行工具或清单管理自定义资源。 |
可扩展性¶
Knative 利用您集群上已安装的现有基础设施,并在类似组件之间提供面向开发人员的接口。Serving 和 Eventing 组件在同一集群中支持多个底层传输插件。Serving 支持具有可插拔网络入口路由的 pod;Eventing 支持具有可插拔消息传输(如 Kafka 和 RabbitMQ)的 pod。
对于 LLM 部署,请考虑 KServe 平台。KServe 是一个基于 Knative Serving 构建的 Kubernetes 原生模型服务平台,专为生产环境中的 LLM 部署而设计。
Knative 支持在初始安装后安装其他插件,因此您的初始选择不会限制您。例如,您可以在不丢失消息的情况下从一个消息传输或网络入口迁移到另一个。
网络插件¶
如果您没有满足要求的入口,Knative 提供了 net-kourier,这是一个默认的轻量级 HTTP 路由实现。插件包括:
-
Istio
来自 Istio 的服务网格。请参阅 为 Knative 安装 Istio。
-
Contour
通用入口,目标是实现多团队委托。请参阅 Contour。
-
Gateway API
Kubernetes Gateway API(Beta 版)。
消息插件¶
如果您还没有解决方案,Knative 提供了默认的轻量级内存消息实现。
-
Kafka
来自 Apache Kafka 的分布式事件流平台。有序、高吞吐量但复杂度适中。请参阅 为 Knative 安装 Kafka。
-
RabbitMQ
来自 RabbitMQ 的消息和流代理。有序、吞吐量适中、复杂度适中。请参阅 为 Knative 安装 RabbitMQ
-
NATS
来自 NATS 的事件流平台。复杂度低。
集成插件¶
这些插件有助于 Knative 操作。
-
cert-manager
用于在安全 HTTPS 连接中请求 TLS 证书。请参阅 安装 cert-manager。
-
Backstage
用于处理 Knative 后端的插件。请参阅 安装 Backstage 插件。
安装资源¶
使用以下链接维护您的安装。