Link

目录

  1. 下载
  2. 使用
  3. 参考资料

下载

已经有人造了轮子,go 编写的,我通过 golang 的 docker 镜像编了个二进制,下载链接:

perftest.tar

源码链接:

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/