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
 

提示这个错误

 

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐