从 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 图像。
解决方案分为三步:
- 创建
kubectl secret
其中包含 docker 注册表凭据
- 在
/etc/docker/daemon.json
中添加"insecure-registries":["privateRegistryAddress:port"]
- 重启docker服务
我手动通过 SSH 连接到工作节点,运行 第二步和第三步临时工作,但 EKS Auto Scaler 发现如果该工作节点未在使用中,则终止它并根据需要创建新节点,在这个新的工作节点 "insecure-registries":["privateRegistryAddress:port"]
in /etc/docker/daemon.json
中没有添加,并且由于 pod 调度失败。
这里我能想到两种解决方案-
- 默认配置
/etc/docker/daemon.json
中包含 "insecure-registries":["privateRegistryAddress:port"]
的 AWS EC2 AMI,并在自动缩放器配置中使用该映像
- 创建具有节点级别权限的 pod 来编辑上述文件并重新启动 docker 服务 - 但我怀疑 docker 服务是否重新启动然后该 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 图像。
我将 AWS EKS 与 Auto Scaler 一起用于工作节点。我有私有 Artifactory docker 注册表。
现在为了从私有注册表下载 docker 图像,我阅读了很多文档,包括 kubernetes 文档 - 如何从私有 docker 注册表中提取 docker 图像。
解决方案分为三步:
- 创建
kubectl secret
其中包含 docker 注册表凭据 - 在
/etc/docker/daemon.json
中添加 - 重启docker服务
"insecure-registries":["privateRegistryAddress:port"]
我手动通过 SSH 连接到工作节点,运行 第二步和第三步临时工作,但 EKS Auto Scaler 发现如果该工作节点未在使用中,则终止它并根据需要创建新节点,在这个新的工作节点 "insecure-registries":["privateRegistryAddress:port"]
in /etc/docker/daemon.json
中没有添加,并且由于 pod 调度失败。
这里我能想到两种解决方案-
- 默认配置
/etc/docker/daemon.json
中包含"insecure-registries":["privateRegistryAddress:port"]
的 AWS EC2 AMI,并在自动缩放器配置中使用该映像 - 创建具有节点级别权限的 pod 来编辑上述文件并重新启动 docker 服务 - 但我怀疑 docker 服务是否重新启动然后该 pod 本身会关闭以及是否有效
请指教。谢谢。
通过我提到的第一种方法解决了这个问题。
- 当然首先创建
kubectl secret
以登录私有注册表 - 通过 SSH 连接到 kubernetes 工作节点并在
/etc/docker/daemon.json
中添加了 - 从该节点创建 AMI 映像
- 使用新 AMI 更新了 EC2 启动模板并将新模板版本设置为默认版本
- 使用新的启动模板版本更新了 Ec2 Auto Scaling 组
- 杀死以前的工作节点并让 Auto Scaling 组创建新节点
["privateRegistryAddress:port"]
瞧! :)
现在,每当 EKS 使用 Auto Scaling 组 increase/decrease EC2 实例时,它们将能够从私有 docker 注册表下载 docker 图像。