跳到内容

使用本地资产仓库

您可以配置 kOps 以配置集群以从本地仓库下载资产(镜像和文件)。当从互联网下载资产不可取时,这很有用,例如

  • 部署到网络脱机或互联网受限的环境。
  • 避免速率限制或网络传输成本。
  • 限制对钓鱼攻击的暴露。
  • 符合其他安全要求,例如需要扫描漏洞。

可以为镜像设置一个仓库,为文件设置另一个仓库。

配置

配置本地镜像仓库

要配置本地镜像仓库,请在集群规范中设置 assets.containerRegistryassets.containerProxy。它们本质上做同样的事情,但 containerRegistry 避免在本地镜像名称中使用 / 字符。

spec:
  assets:
    containerRegistry: example.com/registry

或者

spec:
  assets:
    containerProxy: example.com/proxy

配置本地文件仓库

要配置本地文件仓库,请在集群规范中设置 assets.fileRepository

spec:
  assets:
    fileRepository: https://example.com/files

仓库必须允许节点执行未经身份验证的读取操作。仓库可以是公开的,也可以通过网络连接允许读取访问,例如通过特定 AWS 端点进行访问。

将资产复制到仓库

介绍
kOps 1.22

您可以通过运行 kops get assets --copy 或通过外部进程将资产复制到其仓库中。

运行 kops get assets --copy 时,kOps 会将资产复制到其各自的仓库中,如果这些资产尚未存在于其中。

对于文件资产,kOps 仅支持复制到 S3 或 GCS 存储桶仓库。S3 存储桶必须使用 S3 的区域命名约定 进行配置。GCS 存储桶必须使用 https://storage.googleapis.com/ 前缀进行配置。

列出资产

介绍
kOps 1.22

您可以通过运行 kops get assets 获取特定集群使用的镜像和文件资产列表。您可以以表格、YAML 或 JSON 格式获取输出。您可以将其提供给一个进程,该进程独立于 kOps,用于将资产复制到其各自的仓库中。