NEWS
Kube Pod restart, 'Cannot find module '../iobroker.js'
-
Hallo,
ich betreibe IOBroker in einem Kubernetes Cluster als Statefullset. Nach dem mir der Pod durch einen Node-Restart einmal abgeräumt wurde, startet dieser nicht mehr ordnungsgemäß.
Systemdata Hardwaresystem: Pi4 Kubernetes Cluster Arbeitsspeicher: jeweils 8GB Festplattenart: SSD Betriebssystem: Ubuntu Installationsart: kubernetes statefullset Image genutzt: ja Ort/Name der Imagedatei: iobroker/iobroker:latest-v7@sha256:534f5ef0d23ceafabddee2fdfea9816848b454e75d936bb5bc934640b8321d69 Log-Ausgabe:
-------------------------------------------------------------------------------- ------------------------- 2022-09-10 22:43:40 ------------------------- -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- ----- Welcome to your ioBroker-container! ----- ----- Startupscript is now running. ----- ----- Please be patient! ----- -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- ----- Debugging information ----- ----- ----- ----- System ----- ----- arch: aarch64 ----- ----- hostname: iobroker-0 ----- ----- ----- ----- Docker-Image ----- ----- image: v7.0.1 ----- ----- build: 2022-07-05T18:51:49+00:00 ----- ----- ----- ----- Versions ----- ----- node: v14.19.3 ----- ----- npm: 6.14.17 ----- ----- ----- ----- ENV ----- ----- IOB_ADMINPORT: 8081 ----- ----- SETGID: 1000 ----- ----- SETUID: 1000 ----- -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- ----- Step 1 of 5: Preparing container ----- -------------------------------------------------------------------------------- Updating Linux packages on first run... # gekürzt 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. Done. Registering maintenance script as command... Done. Installing additional packages is set by ENV. Checking the following Packages: ... Reading package lists... Building dependency tree... Reading state information... Reading package lists... Building dependency tree... Reading state information... 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. Done. -------------------------------------------------------------------------------- ----- Step 2 of 5: Detecting ioBroker installation ----- -------------------------------------------------------------------------------- Existing installation of ioBroker detected in /opt/iobroker. -------------------------------------------------------------------------------- ----- Step 3 of 5: Checking ioBroker installation ----- -------------------------------------------------------------------------------- (Re)Setting folder permissions (This might take a while! Please be patient!)... Done. Fixing "sudo-bug" by replacing sudo in iobroker with gosu... Done. internal/modules/cjs/loader.js:905 throw err; ^ Error: Cannot find module '/opt/iobroker/node_modules/iobroker.js-controller/iobroker.js' at Function.Module._resolveFilename (internal/modules/cjs/loader.js:902:15) at Function.Module._load (internal/modules/cjs/loader.js:746:27) at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:75:12) at internal/main/run_main_module.js:17:47 { code: 'MODULE_NOT_FOUND', requireStack: [] } /opt/scripts/iobroker_startup.sh: line 212: [: !=: unary operator expected -------------------------------------------------------------------------------- ----- Step 4 of 5: Applying special settings ----- -------------------------------------------------------------------------------- Some adapters have special requirements/ settings which can be activated by the use of environment variables. For more information see ioBroker Docker Image Docs (https://docs.buanet.de/iobroker-docker-image/docs/). internal/modules/cjs/loader.js:905 throw err; ^ Error: Cannot find module '/opt/iobroker/node_modules/iobroker.js-controller/iobroker.js' at Function.Module._resolveFilename (internal/modules/cjs/loader.js:902:15) at Function.Module._load (internal/modules/cjs/loader.js:746:27) at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:75:12) at internal/main/run_main_module.js:17:47 { code: 'MODULE_NOT_FOUND', requireStack: [] } /opt/scripts/iobroker_startup.sh: line 236: [: 8081: unary operator expected -------------------------------------------------------------------------------- ----- Step 5 of 5: ioBroker startup ----- -------------------------------------------------------------------------------- Starting ioBroker... internal/modules/cjs/loader.js:905 throw err; ^ Error: Cannot find module '/opt/iobroker/node_modules/iobroker.js-controller/controller.js' at Function.Module._resolveFilename (internal/modules/cjs/loader.js:902:15) at Function.Module._load (internal/modules/cjs/loader.js:746:27) at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:75:12) at internal/main/run_main_module.js:17:47 { code: 'MODULE_NOT_FOUND', requireStack: [] }Auf den ersten Blick sieht es so aus, als gäbe es die iobroker.js und die controller.js-Datei nicht gibt. Die Dateien sind jedoch existent und werden scheinbar dennoch nicht gefunden.
root@iobroker-0:/opt/iobroker# head node_modules/iobroker.js-controller/controller.js /** * Redirect for older installations * * Copyright 2018-2022 bluefox <dogafox@gmail.com>, * MIT License * */ require('./main').init(); root@iobroker-0:/opt/iobroker# cd node_modules/iobroker.js-controller/ && ls -la total 368 drwxrwxr-x+ 6 iobroker iobroker 4096 Sep 10 22:39 . drwxrwxrwx+ 522 iobroker iobroker 20480 Sep 10 22:33 .. -rw-rwxr--+ 1 iobroker iobroker 420 Okt 26 1985 compactgroupController.js drwxrwxr-x+ 2 iobroker iobroker 4096 Sep 10 22:32 conf -rw-rwxr--+ 1 iobroker iobroker 158 Okt 26 1985 controller.js -rwxrwxr-x+ 1 iobroker iobroker 34 Okt 26 1985 iobroker.js -rw-rwxr--+ 1 iobroker iobroker 54395 Okt 26 1985 io-package.json drwxrwxr-x+ 9 iobroker iobroker 4096 Sep 10 22:32 lib -rw-rwxr--+ 1 iobroker iobroker 1135 Okt 26 1985 LICENSE -rw-rwxr--+ 1 iobroker iobroker 249293 Okt 26 1985 main.js drwxrwxr-x+ 7 iobroker iobroker 4096 Sep 10 22:32 node_modules -rw-rwxr--+ 1 iobroker iobroker 4503 Sep 10 22:32 package.json -rw-rwxr--+ 1 iobroker iobroker 193 Okt 26 1985 README.md drwxrwxr-x+ 2 iobroker iobroker 4096 Sep 10 22:32 tmp root@iobroker-0:/opt/iobroker/node_modules/iobroker.js-controller# head iobroker.js require('./lib/setup').execute();Ist das Problem bekannt? Hat jemand einen Rat dies zu beheben?
Temporär lässt sich iobroker via
root@iobroker-0:/opt/iobroker# sudo node /opt/iobroker/node_modules/iobroker.js-controller/iobroker.js startstarten. Hilft nur nicht, wenn der Pod wieder terminiert und neustartet.Beste Grüße, Matthias
StatefullSet-Definition:
resource "kubernetes_stateful_set" "iobroker" { metadata { name = "iobroker" namespace = kubernetes_namespace.smartmeter_namespace.id } spec { service_name = "iobroker" revision_history_limit = 5 selector { match_labels = { "app.kubernetes.io/instance" : "iobroker" "app.kubernetes.io/name" : "iobroker" } } volume_claim_template { metadata { name = "iobroker-data" } spec { access_modes = ["ReadWriteOnce"] storage_class_name = "openebs-jiva-csi-default" resources { requests = { storage = "10Gi" } } } } template { metadata { name = "iobroker" labels = { "app.kubernetes.io/instance" : "iobroker" "app.kubernetes.io/name" : "iobroker" } } spec { container { name = "iobroker" image = "iobroker/iobroker:latest-v7@sha256:534f5ef0d23ceafabddee2fdfea9816848b454e75d936bb5bc934640b8321d69" port { name = "http" container_port = 8081 } port { name = "httpui" container_port = 8082 } volume_mount { name = "iobroker-data" mount_path = "/opt/iobroker" } env { name = "IOB_ADMINPORT" value = "8081" } } } } } }Users & Permissions
root@iobroker-0:/opt# cat /etc/passwd root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin bin:x:2:2:bin:/bin:/usr/sbin/nologin sys:x:3:3:sys:/dev:/usr/sbin/nologin sync:x:4:65534:sync:/bin:/bin/sync games:x:5:60:games:/usr/games:/usr/sbin/nologin man:x:6:12:man:/var/cache/man:/usr/sbin/nologin lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin mail:x:8:8:mail:/var/mail:/usr/sbin/nologin news:x:9:9:news:/var/spool/news:/usr/sbin/nologin uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin proxy:x:13:13:proxy:/bin:/usr/sbin/nologin www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin backup:x:34:34:backup:/var/backups:/usr/sbin/nologin list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin irc:x:39:39:ircd:/run/ircd:/usr/sbin/nologin gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin _apt:x:100:65534::/nonexistent:/usr/sbin/nologin _rpc:x:101:65534::/run/rpcbind:/usr/sbin/nologin statd:x:102:65534::/var/lib/nfs:/usr/sbin/nologin iobroker:x:1000:1000::/opt/iobroker:/bin/bash root@iobroker-0:/opt# stat /opt/iobroker/node_modules/iobroker.js-controller/iobroker.js File: /opt/iobroker/node_modules/iobroker.js-controller/iobroker.js Size: 34 Blocks: 8 IO Block: 4096 regular file Device: 810h/2064d Inode: 399354 Links: 1 Access: (0775/-rwxrwxr-x) Uid: ( 1000/iobroker) Gid: ( 1000/iobroker) Access: 2022-09-10 23:24:57.083078730 +0200 Modify: 1985-10-26 09:15:00.000000000 +0100 Change: 2022-09-10 22:47:17.530576383 +0200 Birth: 2022-09-10 22:32:50.225830721 +0200
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden