zengjd 2023-03-23 15:30 采纳率: 55.6%
浏览 127
已结题

关于在k8s集群上搭建selenium集群

因为需要长久运行大规模的web测试做为监控服务,想在k8s集群上搭建selenium hub/node集群。我想问一下搭建有啥风险没有?比如运行hub的pod滚动重启了,那就会不会导致数据丢失,比如session里的数据。或者还有什么其他风险?
另外能不能提供一些真正能运行的YAM,网上找的都运行不了。非常感谢!

  • 写回答

4条回答 默认 最新

  • 「已注销」 2023-03-23 15:49
    关注

    参考GPT:搭建Selenium Hub/Node集群在Kubernetes集群上是一种常见的做法,但是确实存在一些潜在的风险和挑战。以下是一些需要注意的事项:

    1 数据丢失:如果运行Hub的Pod滚动重启,可能会导致已经建立的Session数据丢失。为了避免这种情况,可以使用一个外部的数据存储服务,如Redis,来保存Session数据。

    2 资源消耗:Selenium测试需要大量的资源来模拟浏览器行为。因此,需要确保在Kubernetes集群上分配足够的资源来支持测试任务的运行。

    3 稳定性:Selenium测试对稳定的网络连接和稳定的环境非常敏感。在Kubernetes集群中,可能会存在一些网络延迟或不稳定性,这可能会导致测试失败。

    在搭建Selenium Hub/Node集群时,可以采用一些最佳实践来降低风险,如使用容错性较高的存储服务,限制资源使用,使用优化的网络配置等。

    以下是一个可以运行的YAML配置文件,你可以根据需要进行修改:

    apiVersion: v1
    kind: Service
    metadata:
      name: selenium-hub
    spec:
      selector:
        app: selenium-hub
      ports:
      - name: selenium-hub-port
        port: 4444
        protocol: TCP
        targetPort: 4444
    ---
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: selenium-hub
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: selenium-hub
      template:
        metadata:
          labels:
            app: selenium-hub
        spec:
          containers:
          - name: selenium-hub
            image: selenium/hub:3.141.59
            ports:
            - containerPort: 4444
          imagePullSecrets:
          - name: regcred
    ---
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: selenium-node-chrome
    spec:
      replicas: 5
      selector:
        matchLabels:
          app: selenium-node-chrome
      template:
        metadata:
          labels:
            app: selenium-node-chrome
        spec:
          containers:
          - name: selenium-node-chrome
            image: selenium/node-chrome:3.141.59
            env:
            - name: HUB_HOST
              value: selenium-hub
            - name: HUB_PORT
              value: "4444"
            ports:
            - containerPort: 5555
          imagePullSecrets:
          - name: regcred
    

    这个配置文件会创建一个包含一个Selenium Hub和5个Chrome节点的集群。你可以根据需要调整replicas的数量。注意,这个配置文件需要一个名为regcred的镜像仓库凭证来拉取Selenium镜像。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 4月3日
  • 已采纳回答 3月26日
  • 创建了问题 3月23日

悬赏问题

  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)
  • ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。