目录
下载
已经有人造了轮子,go 编写的,我通过 golang 的 docker 镜像编了个二进制,下载链接:
源码链接:
https://github.com/seamounts/perftest
使用
准备测试镜像:
docker pull garima0079/bigimage
docker tag garima0079/bigimage {harbor LB地址}/bigimage
docker push {harbor LB地址}/bigimage
准备控制节点(任意可以通过kubectl连接到k8s master的节点)
#下载二进制 kubectl 文件,放在 /usr/bin/ 目录下
tar xvf kubernetes-client-linux-amd64.tar.gz
mv kubelet /usr/bin
vim ~/.kube/config
#粘贴kubectl配置文件
#通过kubectl测试是否可以连接到k8s集群
kubectl get node
配置免密登录
#为控制节点生成 ssh key
ssh-keygen
nodes=$(kubectl get node | grep -v NAME | awk '{print $1}')
for node in $nodes
do
ssh-copy-id -o "StrictHostKeyChecking no" $node
done
#根据提示输入每个节点的密码
使用脚本清理所有node的 bigimage 缓存(此脚本在源码的 perftest/cmd/harbor/script
目录下)
cat clear-image-cache.sh
#!/usr/bin/env bash
image=$1
if [ -z "$image" ]; then
echo 'pls input image'
exit 1
fi
nodes=$(kubectl get node | grep node | awk '{print $1}')
for node in $nodes
do
ssh -tt -o "StrictHostKeyChecking no" $node -i ~/.ssh/id._rsa "docker rmi $image"
done
开始测试
#在集群所有节点并发拉取镜像。
./perftest harbor pullimage --image {harbor LB地址}/bigimage --kubeconfig /root/.kube/config --keypath ~/.ssh/id._rsa
实际测试数据请参考下方链接:
参考资料
https://www.flftuu.com/2019/10/09/harbor-%E8%83%BD%E5%8A%9B%E6%B5%8B%E8%AF%95/