Selenium: Browser failed to start on Moon在Kubernetes上运行



问题总结:我在虚拟机上的K8s集群上安装了moon2。试图连接到铬使用硒被卡住。Chrome pod卡在'pending'状态,我在日志中看到以下错误。

2022/12/16 23:39:46 moon-f54d9dcf8-pctxm: moon: firefox-106-0-0-2-5a3fb0db-51da-45e4-9fd3-03bebb03ac7c:创建配置映射2022/12/16 23:39:46 moon-f54d9dcf8-pctxm: moon: firefox-106-0-0-2-5a3fb0db-51da-45e4-9fd3-03bebb03ac7c:配置映射创建2022/12/16 23:39:46 moon-f54d9dcf8-pctxm: moon: firefox-106-0-0-2-5a3fb0db-51da-45e4-9fd3-03bebb03ac7c:创建pod2022/12/16 23:39:46 moon-f54d9dcf8-pctxm: moon: firefox-106-0-0-2-5a3fb0db-51da-45e4-9fd3-03bebb03ac7c: pod创建2022/12/16 23:39:46 moon-f54d9dcf8-pctxm: moon: firefox-106-0-0-2-5a3fb0db-51da-45e4-9fd3-03bebb03ac7c:等待podW1216 23:44:46.574953 1反射器。Go:442] pkg/mod/k8s.io/client-go@v0.23.3/tools/cache/reflector.go:167: *v1的手表。Pod以:服务器上的错误("无法从观看流解码事件:上下文取消")结束,这阻止了请求成功2022/12/16 23:44:46 moon-f54d9dcf8-pctxm: moon: firefox-106-0-0-2-5a3fb0db-51da-45e4-9fd3-03bebb03ac7c:客户端在等待资源时断开连接2022/12/16 23:44:46 moon-f54d9dcf8-pctxm: moon: firefox-106-0-0-2-5a3fb0db-51da-45e4-9fd3-03bebb03ac7c:删除pod2022/12/16 23:44:46 moon-f54d9dcf8-pctxm: moon: firefox-106-0-0-2-5a3fb0db-51da-45e4-9fd3-03bebb03ac7c: pod被删除2022/12/16 23:44:46 moon-f54d9dcf8-pctxm: moon: firefox-106-0-0-2-5a3fb0db-51da-45e4-9fd3-03bebb03ac7c:删除配置映射2

这是我尝试过的:

  1. 在ubuntu VM上安装Kubernetes集群
~$kubectl get pods -n moon
NAME                   READY   STATUS    RESTARTS        AGE
moon-f54d9dcf8-pctxm   3/3     Running   7 (4d14h ago)   4d14h
moon-f54d9dcf8-v6v58   3/3     Running   7 (4d14h ago)   4d14h
~$kubectl get svc newmoon -n moon
NAME      TYPE           CLUSTER-IP      EXTERNAL-IP   PORT(S)                         AGE
newmoon   LoadBalancer   10.233.58.212   10.6.152.56   4444:30898/TCP,8080:31836/TCP   2d23h
~$ kubectl get browsersets -n moon -o yaml
apiVersion: v1
items:
- apiVersion: moon.aerokube.com/v1
kind: BrowserSet
metadata:
annotations:
meta.helm.sh/release-name: moon
meta.helm.sh/release-namespace: moon
creationTimestamp: "2022-12-15T05:29:22Z"
generation: 1
labels:
app.kubernetes.io/managed-by: Helm
name: default
namespace: moon
resourceVersion: "27996"
uid: b072a650-5ab0-4add-a6b1-9d73de8a09ce
spec:
cypress:
chrome:
repository: quay.io/browsers/cypress-chrome
chromium:
repository: quay.io/browsers/cypress-chromium
edge:
repository: quay.io/browsers/cypress-edge
electron:
repository: quay.io/browsers/cypress-electron
firefox:
repository: quay.io/browsers/cypress-firefox
devtools:
chrome:
repository: quay.io/browser/devtools-google-chrome-stable
playwright:
chrome:
repository: quay.io/browser/playwright-chrome
chromium:
repository: quay.io/browser/playwright-chromium
firefox:
repository: quay.io/browser/playwright-firefox
webkit:
repository: quay.io/browser/playwright-webkit
selenium:
MicrosoftEdge:
default: 106.0.1370.42-2
repository: quay.io/browser/microsoft-edge-stable
chrome:
default: 106.0.5249.119-2
repository: quay.io/browser/google-chrome-stable
firefox:
default: 106.0.0-2
repository: quay.io/browser/firefox-mozilla-build
opera:
default: 91.0.4516.65-3
repository: quay.io/browser/opera-stable
safari:
default: 15.0-0
repository: quay.io/browser/safari
kind: List
metadata:
resourceVersion: ""
~$

但是当我尝试在selenium

中将其用作远程服务器时,浏览器会陷入挂起不知道缺少什么,任何帮助都将是非常感激的。

可能Kubernetes节点上的计算资源(通常是cpu或内存)不足。更罕见的情况是一些污点被分配给Kubernetes节点。要检查发生了什么,您可以在运行代码时列出pods,并检查是否有浏览器pods长时间保持在Pending状态。然后简单地描述各自的pod,并查看输出的末尾以获得原因。

$ kubectl describe po firefox-106-0-0-2-5a3fb0db-51da-45e4-9fd3-03bebb03ac7c -n moon

如果你面临计算资源不足的问题,确保你有足够大的Kubernetes节点。我们建议使用4或8个cpu和8或16 GB内存的节点。

最新更新