首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法连接到蝗虫webport中的主程序和无效args的工作人员

无法连接到蝗虫webport中的主程序和无效args的工作人员
EN

Stack Overflow用户
提问于 2022-07-28 10:32:42
回答 2查看 132关注 0票数 0

我正在尝试为端点设置一个负载测试。到目前为止,这就是我所遵循的:

Dockerfile

代码语言:javascript
运行
复制
FROM python:3.8

# Add the external tasks directory into /tasks
WORKDIR /src

ADD requirements.txt .
RUN pip install --no-cache-dir --upgrade locust==2.10.1

ADD run.sh .
ADD load_test.py .
ADD load_test.conf .

# Expose the required Locust ports
EXPOSE 5557 5558 8089

# Set script to be executable
RUN chmod 755 run.sh

# Start Locust using LOCUS_OPTS environment variable
CMD ["bash", "run.sh"]

# Modified from:
# https://github.com/scrollocks/locust-loadtesting/blob/master/locust/docker/Dockerfile

run.sh

代码语言:javascript
运行
复制
#!/bin/bash
LOCUST="locust"
LOCUS_OPTS="--config=load_test.conf"
LOCUST_MODE=${LOCUST_MODE:-standalone}

if [[ "$LOCUST_MODE" = "master" ]]; then
    LOCUS_OPTS="$LOCUS_OPTS --master"
elif [[ "$LOCUST_MODE" = "worker" ]]; then
    LOCUS_OPTS="$LOCUS_OPTS --worker --master-host=$LOCUST_MASTER_HOST"
fi

echo "${LOCUST} ${LOCUS_OPTS}"

$LOCUST $LOCUS_OPTS

# Copied from
# https://github.com/scrollocks/locust-loadtesting/blob/master/locust/docker/locust/run.sh

我是这样编写负载测试locust脚本的:

代码语言:javascript
运行
复制
import json

from locust import HttpUser, constant, task


class CategorizationUser(HttpUser):
    wait_time = constant(1)

    @task
    def predict(self):
        payload = json.dumps(
            {
                "text": "Face and Body Paint washable Rubies Halloween item 91#385"
            }
        )
        _ = self.client.post("/predict", data=payload)

我是用一个配置来调用它的:

代码语言:javascript
运行
复制
locustfile = load_test.py
headless = false
users = 1000
spawn-rate = 1
run-time = 5m
host = IP
html = locust_report.html

因此,在构建和推送Docker映像并在GKE上创建k8s集群之后,我将部署它。这就是deployment.yaml的样子:

代码语言:javascript
运行
复制
# Copied from 
# https://github.com/scrollocks/locust-loadtesting/blob/master/locust/kubernetes/templates/deployment.yaml

---
kind: Deployment
apiVersion: apps/v1
metadata:
  namespace: default
  name: locust-master-deployment
  labels:
    name: locust
    role: master
spec:
  replicas: 1
  selector:
    matchLabels:
      name: locust
      role: master
  template:
    metadata:
      labels:
        name: locust
        role: master
    spec:
      containers:
        - name: locust
          image: gcr.io/PROJECT_ID/IMAGE_URI
          imagePullPolicy: Always
          env:
            - name: LOCUST_MODE
              value: master
            - name: LOCUST_LOG_LEVEL
              value: DEBUG
          ports:
            - name: loc-master-web
              containerPort: 8089
              protocol: TCP
            - name: loc-master-p1
              containerPort: 5557
              protocol: TCP
            - name: loc-master-p2
              containerPort: 5558
              protocol: TCP

---
kind: Deployment
apiVersion: apps/v1
metadata:
  namespace: default
  name: locust-worker-deployment
  labels:
    name: locust
    role: worker
spec:
  replicas: 2
  selector:
    matchLabels:
      name: locust
      role: worker
  template:
    metadata:
      labels:
        name: locust
        role: worker
    spec:
      containers:
        - name: locust
          image: gcr.io/PROJECT_ID/IMAGE_URI
          imagePullPolicy: Always
          env:
            - name: LOCUST_MODE
              value: worker
            - name: LOCUST_MASTER
              value: locust-master-service
            - name: LOCUST_LOG_LEVEL
              value: DEBUG

部署之后,我将公开所需的端口如下:

代码语言:javascript
运行
复制
kubectl expose pod locust-master-deployment-f9d4c4f59-8q6wk \
    --type NodePort \
    --port 5558 \
    --target-port 5558 \
    --name locust-5558

kubectl expose pod locust-master-deployment-f9d4c4f59-8q6wk \
    --type NodePort \
    --port 5557 \
    --target-port 5557 \
    --name locust-5557

kubectl expose pod locust-master-deployment-f9d4c4f59-8q6wk \
    --type LoadBalancer \
    --port 80 \
    --target-port 8089 \
    --name locust-web

集群和节点配置成功。但是当我访问locust-web的IP时,我得到的是:

关于如何解决这个问题,有什么建议吗?

EN

Stack Overflow用户

发布于 2022-07-28 11:50:40

可能是k8s设置的环境变量与蝗虫(特别是LOCUST_WEB_PORT)发生了冲突。更改您的设置,以便没有容器被命名为“蝗虫”。

类似的问题请参见https://github.com/locustio/locust/issues/1226

票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73151365

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档