我有一个 kubeless 版本,v1.0.8
我正在构建一个机器学习机制,该机制需要按需自动扩展功能(大约要求每小时生成 100 个 pod)。
作为一个匿名的 Docker Hub 用户,我的下载量限制为每六小时 100 个容器镜像拉取请求。
有什么方法可以配置 kubeless 以便在部署期间包含我的 Docker 凭据密码?
非常感谢您的时间。
我有一个 kubeless 版本,v1.0.8
我正在构建一个机器学习机制,该机制需要按需自动扩展功能(大约要求每小时生成 100 个 pod)。
作为一个匿名的 Docker Hub 用户,我的下载量限制为每六小时 100 个容器镜像拉取请求。
有什么方法可以配置 kubeless 以便在部署期间包含我的 Docker 凭据密码?
非常感谢您的时间。
一个好的开始是imagePullPolicy
为你的PodSpec
to设置IfNotPresent
,这样你每个节点的每个版本只需要拉一次。
根据工作负载的重要性,您还应该考虑将映像镜像到您控制的容器注册表。当您需要在凌晨 3 点推出修补程序时,您不希望达到速率限制。
这对 EKS (AWS K8s) 有效
#!/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
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)。