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

问题描述 投票:0回答:1

我正在将带有自动缩放器的AWS EKS用于工作节点。我有私人Artifactory码头注册中心。

现在为了从私有注册表中下载Docker镜像,我已经阅读了许多文档,包括kubernetes文档-有关如何从私有docker注册表中提取docker镜像的。

解决方案中包含三个步骤:

  • 创建kubectl secret,其中包含Docker注册表凭据
  • "insecure-registries":["privateRegistryAddress:port"]中添加/etc/docker/daemon.json
  • 重新启动Docker服务

我已经手动SSH进入工作节点,并运行了第二步和第三步,该步骤适用于临时节点,但是当EKS Auto Scaler发现该工作节点未被使用时,请杀死它并根据需要创建一个新节点,在此新工作节点中"insecure-registries":["privateRegistryAddress:port"]中的/etc/docker/daemon.json未添加,并且由于pod调度失败。

我可以在这里想到两种解决方案-

  • 配置默认为在"insecure-registries":["privateRegistryAddress:port"]中包含/etc/docker/daemon.json并在自动缩放器配置中使用该图像的AWS EC2 AMI
  • [创建具有节点级权限的Pod,以编辑所提到的文件并重新启动docker服务-但我怀疑docker service是否重新启动,那么该pod本身将掉线,并且是否起作用

请告知。谢谢。

kubernetes docker-registry amazon-eks aws-eks eks
1个回答
0
投票

解决了我提到的第一种方法。

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

瞧!! :)

现在,每当使用Auto Scaling组的EKS增加/减少EC2实例时,他们将能够从私有Docker注册表中下载Docker映像。

© www.soinside.com 2019 - 2024. All rights reserved.