You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何访问Kubernetes中Selenium节点的浏览器会话以解决CAPTCHA验证

解决步骤

1. 替换节点镜像为带远程桌面能力的版本

你当前使用的selenium/node-chrome是无界面基础镜像,没有内置远程访问能力,无法直接查看浏览器界面。将其替换为同版本的selenium/node-chrome-debug镜像,该镜像内置VNC远程桌面服务,默认开放5900端口用于桌面访问。

2. 修改节点K8s配置

修改Chrome节点的Deployment配置,新增5900端口暴露:

containers:
  - name: selenium-node-chrome
    # 替换镜像
    image: selenium/node-chrome-debug:3.141.59-xenon
    env:
      # 原有env配置保持不变
      - name: JAVA_OPTS
        value: "-Xmx512m -Dselenium.LOGGER.level=WARNING"
      # 其余原有环境变量全部保留
    ports:
      - containerPort: 4444
        protocol: TCP
      - containerPort: 5555
        protocol: TCP
      # 新增VNC端口暴露
      - containerPort: 5900
        protocol: TCP

原有Service配置可保持不变,后续直接通过Pod端口转发访问即可,无需额外修改Service端口映射。

3. 端口转发访问浏览器界面

部署更新完成后,执行以下操作访问节点浏览器:

  1. 查找节点Pod名称:
kubectl get pods -l app=selenium-node-chrome
  1. 做本地到Pod的VNC端口转发:
kubectl port-forward <替换为你的节点Pod名称> 5900:5900
  1. 打开任意VNC客户端,连接地址为localhost:5900,默认密码为secret,即可看到节点上运行的Chrome桌面,手动完成CAPTCHA验证即可。

4. 可选:持久化验证数据

如果需要避免Pod重启后重复验证,给节点Deployment新增持久化卷,挂载到Chrome用户数据目录:

# 在volumeMounts中新增条目
volumeMounts:
  - name: dshm
    mountPath: /dev/shm
  - name: chrome-data
    mountPath: /home/seluser/.config/google-chrome
# 在volumes中新增条目
volumes:
  - name: dshm
    emptyDir: { "medium": "Memory" }
  - name: chrome-data
    persistentVolumeClaim:
      claimName: <替换为你创建的PVC名称>

配置完成后,CAPTCHA验证后的Cookie、本地存储等数据会持久化保存,无需重复验证。

内容的提问来源于stack exchange,提问作者jclasley

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 17:36:03