1

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

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

有什么方法可以配置 kubeless 以便在部署期间包含我的 Docker 凭据密码

非常感谢您的时间。

4

2 回答 2

1

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

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

于 2021-06-25T12:28:21.553 回答
0

这对 EKS (AWS K8s) 有效

  1. 购买 dockerhub pro 帐户。
  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)。

于 2022-01-12T12:13:47.247 回答