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日

悬赏问题

  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?