0

Problem summary: I installed moon2 on K8s cluster on a virtual machine. Trying to connect to chrome using selenium gets stuck. Chrome pod gets stuck in the 'pending' state and I see the following error in the log.

2022/12/16 23:39:46 moon-f54d9dcf8-pctxm: moon: firefox-106-0-0-2-5a3fb0db-51da-45e4-9fd3-03bebb03ac7c: creating config map 2022/12/16 23:39:46 moon-f54d9dcf8-pctxm: moon: firefox-106-0-0-2-5a3fb0db-51da-45e4-9fd3-03bebb03ac7c: config map created 2022/12/16 23:39:46 moon-f54d9dcf8-pctxm: moon: firefox-106-0-0-2-5a3fb0db-51da-45e4-9fd3-03bebb03ac7c: creating pod 2022/12/16 23:39:46 moon-f54d9dcf8-pctxm: moon: firefox-106-0-0-2-5a3fb0db-51da-45e4-9fd3-03bebb03ac7c: pod created 2022/12/16 23:39:46 moon-f54d9dcf8-pctxm: moon: firefox-106-0-0-2-5a3fb0db-51da-45e4-9fd3-03bebb03ac7c: waiting pod W1216 23:44:46.574953 1 reflector.go:442] pkg/mod/k8s.io/client-go@v0.23.3/tools/cache/reflector.go:167: watch of *v1.Pod ended with: an error on the server ("unable to decode an event from the watch stream: context canceled") has prevented the request from succeeding 2022/12/16 23:44:46 moon-f54d9dcf8-pctxm: moon: firefox-106-0-0-2-5a3fb0db-51da-45e4-9fd3-03bebb03ac7c: client disconnected while waited for resources 2022/12/16 23:44:46 moon-f54d9dcf8-pctxm: moon: firefox-106-0-0-2-5a3fb0db-51da-45e4-9fd3-03bebb03ac7c: deleting pod 2022/12/16 23:44:46 moon-f54d9dcf8-pctxm: moon: firefox-106-0-0-2-5a3fb0db-51da-45e4-9fd3-03bebb03ac7c: pod deleted 2022/12/16 23:44:46 moon-f54d9dcf8-pctxm: moon: firefox-106-0-0-2-5a3fb0db-51da-45e4-9fd3-03bebb03ac7c: deleting config map 2

This is what I tried:

  1. Installed Kubernetes cluster on ubuntu VM.
~$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: ""
~$

but browser gets stuck in pending when I try to use this as remote server in selenium

Not sure what's missing, any help would be highly appreciated.

1 Answers1

0

Probably you have insufficient computing resources (usually CPUs or memory) on Kubernetes nodes. More rare case is some taints being assigned to Kubernetes nodes. To check what's happening you can list pods while running your code and check whether there are browser pods remaining in Pending state for the long time. Then simply describe respective pod and look at the end of the output to get the reason.

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

If you are facing insufficient computing resources issue, make sure you have sufficiently big Kubernetes nodes. We recommend using nodes with 4 or 8 CPUs and 8 or 16 GB of memory.

vania-pooh
  • 2,933
  • 4
  • 24
  • 42