K8S采坑记录
1.kind: PersistentVolumeClaimapiVersion: v1metadata:name: jmeter-taskspec:accessModes:- ReadWriteManyresources:requests:storage: 1Gi2.接下来上传*.jmx文件,到input目录之中,这里我录制的一个持续访问baidu的任务,命名为baidu.jmxkubectl a
1.
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: jmeter-task
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 1Gi
2.
接下来上传*.jmx文件,到input目录之中,这里我录制的一个持续访问baidu的任务,命名为baidu.jmx
kubectl apply -f job.yaml
job.batch/jmeter created
apiVersion: batch/v1
kind: Job
metadata:
name: jmeter
spec:
template:
metadata:
name: jmeter
spec:
restartPolicy: Never
containers:
- name: jmeter
image: dustise/jmeter-server
command:
- "/jmeter/bin/jmeter"
- "-n"
- "-t"
- "/jmeter/input/baidu.jmx"
- "-l"
- "/jmeter/output/log"
- "-j"
- "/jmeter/output/joker"
volumeMounts:
- name: data
mountPath: /jmeter/input
subPath: input
- name: data
mountPath: /jmeter/output
subPath: output
volumes:
- name: data
persistentVolumeClaim:
claimName: jmeter-task
3.任务查看
任务启动之后,可以:
- 使用kubectl get jobs来查看任务运行状况。
- kubectl get pods –show-all查看任务 Pod。
- kubectl logs -f [pod name]查看任务输出。可以看到有jmeter-XXXXX的pods
kubectl get pods
NAME READY STATUS RESTARTS AGE
hello-minikube-5655c9d946-24ndd 0/1 ImagePullBackOff 0 62d
jmeter-tgz9p 0/1 ContainerCreating 0 2m27s
mysql-0 0/2 Init:0/2 0 50m
mysql-client 0/1 Error 0 55m
集群测试
Jmeter 可以使用控制台+负载机的形式,使用多个节点进行压力测试,这里需要解决的一个最重要问题就是,在指派任务给负载机时,Jmeter 需要使用-R host:port的参数,来指定任务要调用的负载机。这一通信是无法通过 Kubernetes 方式的 Service 来完成的。必须建立 Pod 之间的通信,而 Pod 的主机名地址是很飘逸的,同时,我们还是希望负载节点的数量能够实现较为自由的伸缩,因此解决方法就只有 StatefulSet 了。
Unable to use a TTY - input is not a terminal or the right kind of file
OCI runtime exec failed: exec failed: container_linux.go:349: starting container process caused "exec: \"D:/Program Files/Git/usr/bin/bash\": stat D:/Program Files/Git/usr/bin/bash: no such file or directory": unknown
提示这个错误
更多推荐
所有评论(0)