【问题标题】:How to increase dockerhub rate limits within kubeless?如何在 kubeless 中增加 dockerhub 速率限制?
【发布时间】:2022-01-12 20:13:47
【问题描述】:

我有一个 kubeless 版本的 v1.0.8,我正在构建一个机器学习机制,该机制需要按需自动扩展功能(大约要求每小时生成 100 个 pod)。

作为匿名 Docker Hub 用户,我的下载量限制为每 6 小时 100 个容器映像拉取请求。

有没有办法配置kubeless以包含my Docker credentials secret during deployment

非常感谢您抽出宝贵时间。

【问题讨论】:

  • 我还想指出,docker.io 并没有垄断 docker registries; ECR、GCP、Quay、自托管和(如果适用于您)将图像预拉到节点上可以避免 docker 速率限制
  • 一个好的开始是将PodSpecimagePullPolicy 设置为IfNotPresent,这样每个节点的每个版本只需拉一次。根据工作负载的重要性,我还会考虑将映像镜像到您控制的容器注册表。当您需要在凌晨 3 点推出修补程序时,您不希望达到速率限制。
  • @EmilePels,您可能希望将此评论变成被接受的答案。

标签: kubernetes dockerhub rate-limiting kubeless


【解决方案1】:

一个好的开始是将PodSpecimagePullPolicy 设置为IfNotPresent,这样每个节点的每个版本只需拉一次。

根据工作负载的重要性,您还应该考虑将映像镜像到您控制的容器注册表。当您需要在凌晨 3 点推出修补程序时,您不希望达到速率限制。

【讨论】:

    【解决方案2】:

    这对 EKS (AWS K8s) 有效

    1. 购买 dockerhub 专业版帐号。
    2. 创建 docker 注册表密码:
    #!/bin/bash
    
    for ns in $(kubectl get namespaces |grep -v NAME|awk '{print $1}')
    do
       kubectl create secret docker-registry docker.registry \
           --docker-username=<MyAccountName> \
           --docker-password='MyDockerHubPassword' -n $ns
    done
    
    1. 使用您在第 2 步中创建的密钥修补所有命名空间中的所有动态服务帐户
    for ns in $(kubectl get namespaces|grep -v NAME|awk '{print $1}')
    do
            for sa in $(kubectl -n $ns get sa|grep -v SECRETS|awk '{print $1}')
            do
               kubectl patch serviceaccount $sa -p '{"imagePullSecrets": [{"name": "docker.registry"}]}' -n $ns
               if [ $? -eq 0 ]; then
                    echo $ns $sa patched
               else
                    echo Error patching $ns $sa
               fi
            done
    done
    

    告诉我进展如何。

    注意:每次部署依赖于 dockerhub 的新工作负载时,您都需要运行补丁脚本 (3)。

    【讨论】:

      猜你喜欢
      • 2021-11-22
      • 1970-01-01
      • 1970-01-01
      • 2021-12-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多