如何从 calico.yaml 访问 ACR 图像

How to access ACR images from calico.yaml

我在 kube-system 命名空间中有一个带有 calico pods calico-node-xxx & calico-kube-controllers-xxx 运行 的 k3s 集群。我在我的项目中使用 calico.yaml 配置。

现在,我希望从我的 ACR 存储库而不是 docker.io 存储库中提取 calico.yaml 中的这些图像。因此,我在我的 ACR 存储库中标记并推送了这些图像,并更改了 calico 清单 yaml 文件中的图像路径(例如 myacrrepo.io/calico/node:v3.17.1 ),以便 pods 可以从 ACR 存储库中提取图像。

但是我应该在 calico 清单文件中的什么地方提及 ACR 存储库的凭据,因为没有凭据 (username/password/hostname) pod 失败并出现错误 x509: certificate signed by unknown authority.

有人可以让我知道我应该在 calico.yaml 中添加 ACR 回购凭据吗(以及在 calico.yaml 中提供凭据的语法是什么,因为对于 dockr.io 图像没有凭据calico.yaml 中提到,我可以用我的 ACR 回购凭据替换)?

如果您想使用私有容器注册表,则必须创建一个 imagePullSecret。 Microsoft 解释了 here 如何为 ACR 执行此操作。

创建 imagePullSecret 后,将其添加到 pod spec,如文档 'Use the image pull secret' 部分所述。

此 imagePullSecret 对于 docker.io 不是必需的,因为 docker.io 是一个 public 注册表,并且只有私有注册表才需要 imagePullSecret。