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日

悬赏问题

  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度