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

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

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

  • 写回答

4条回答 默认 最新

  • 「已注销」 2023-03-23 07: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月2日
  • 已采纳回答 3月26日
  • 创建了问题 3月23日

悬赏问题

  • ¥15 编译python程序为pyd文件报错:{"source code string cannot contain null bytes"
  • ¥20 关于#r语言#的问题:广义加行模型拟合曲线后如何求拐点
  • ¥15 fluent设置了自动保存后,会有几个时间点不保存
  • ¥20 激光照射到四象线探测器,通过液晶屏显示X、Y值
  • ¥15 这怎么做,怎么在我的思路下改下我这写的不对
  • ¥50 数据库开发问题求解答
  • ¥15 安装anaconda时报错
  • ¥15 小程序有个导出到插件方式,我是在分包下引入的插件,这个export的路径对吗,我看官方文档上写的是相对路径
  • ¥20 希望有人能帮我完成这个设计( *ˊᵕˋ)
  • ¥100 将Intptr传入SetHdevmode()将Intptr传入后转换为DEVMODE的值与外部代码不一致
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部