从 AWS EKS Autoscaler 工作节点中的私有 docker 注册表中拉取图像

Pull image from private docker registry in AWS EKS Autoscaler worker nodes

我将 AWS EKS 与 Auto Scaler 一起用于工作节点。我有私有 Artifactory docker 注册表。

现在为了从私有注册表下载 docker 图像,我阅读了很多文档,包括 kubernetes 文档 - 如何从私有 docker 注册表中提取 docker 图像。

解决方案分为三步:

我手动通过 SSH 连接到工作节点,运行 第二步和第三步临时工作,但 EKS Auto Scaler 发现如果该工作节点未在使用中,则终止它并根据需要创建新节点,在这个新的工作节点 "insecure-registries":["privateRegistryAddress:port"] in /etc/docker/daemon.json 中没有添加,并且由于 pod 调度失败。

这里我能想到两种解决方案-

请指教。谢谢。

通过我提到的第一种方法解决了这个问题。

  • 当然首先创建 kubectl secret 以登录私有注册表
  • 通过 SSH 连接到 kubernetes 工作节点并在 /etc/docker/daemon.json
  • 中添加了 ["privateRegistryAddress:port"]
  • 从该节点创建 AMI 映像
  • 使用新 AMI 更新了 EC2 启动模板并将新模板版本设置为默认版本
  • 使用新的启动模板版本更新了 Ec2 Auto Scaling 组
  • 杀死以前的工作节点并让 Auto Scaling 组创建新节点

瞧! :)

现在,每当 EKS 使用 Auto Scaling 组 increase/decrease EC2 实例时,它们将能够从私有 docker 注册表下载 docker 图像。