在没有互联网的情况下安装 Knative

Installing Knative without internet

是否可以在没有网络的情况下安装 Knative? 了解在安装过程中需要 K8 从互联网上拉取图像。 我可以将所有必要的图像下载到私有存储库并应用 yaml 进行安装吗?

如果你可以预拉Knative核心中使用的所有镜像,那么答案是是的:你可以离线安装和运行 Knative。

图像很多,但您应该能够通过检查 Knative 文档 YAML-based installation 部分中的安装清单轻松找到所有图像。

以下是构成 Knative 核心的一些图像示例(截至 Knative v0.22):

服务

活动

注意:虽然我上面引用的 image 属性采用 ko://... 格式,但 Knative 文档 YAML-based installation 部分中记录的发布清单包含实际图像 URL。

是的,这绝对是可能的。假设现在使用 Knative Serving,您将从 https://knative.dev/docs/install/install-serving-with-yaml 获取发布 YAML。您需要 3 个 YAML 文件:

  1. 服务-crds.yaml
  2. 服务-core.yaml
  3. $network-plugin-of-your-choice.yaml

您可以在这些 YAML 的相应部署中找到所有必要的图像。一个值得注意的例外是队列代理映像,您可以在 config-deployment ConfigMap 中找到它。

确保预先拉取所有这些图像并将 YAML 中的坐标替换为您的私有注册表的坐标。还要确保向使用的服务帐户授予必要的拉取权限。

如果你问这个问题,我想你很可能在做政府工作或类似的事情。您要求我们提供有关操作的实际代码。事情是这样的。您必须 docker 保存所有图像。您将通过搜索每个 kubernetes 清单找到这些。每个容器镜像都将在 yaml 中以 image: 为前缀。然后你可以 tar 把所有的东西都拿起来,带到你需要的地方。您正在着手一项非常漫长且烦人的任务。