
Ich versuche, ein rootloses PHP-FPM-Pod zu erreichen, das in Kubernetes ausgeführt wird.
Ich habe versucht, den Prozess einfach im Kubernetes-Pod über ein Init-Skript auszuführen, das php-fpm -FO
als www-data
Benutzer ausgeführt wird, aber es beschwert sich, keine Zugriffsberechtigungen zu haben /dev/stderr
(Speicherort der Protokollausgabe). Das Hinzufügen www-data
des Benutzers zur tty
Gruppe hat auch nicht geholfen.
Ich habe versucht, einen anderen Speicherort anzugeben, beispielsweise /proc/self/fd/2
oder sogar /dev/pts/1
als Protokollspeicherort, aber ohne Erfolg.
Das Lustige ist: Wenn ich docker run -itd app:latest su -l www-data -s /bin/sh -c php-fpm -FO &
im Grunde denselben Startbefehl direkt über Docker ausführe, startet es und funktioniert einwandfrei.
Ich habe in Kubernetes keine securityContext
Konfiguration, die den normalen Start des Prozesses beeinträchtigen könnte.
Irgendwelche Vorschläge/Ideen, die ich ausprobieren könnte?
Antwort1
Wenn derselbe Fehler bei verschiedenen öffentlichen Apps auftritt, kann dies auf ein Problem mit GKE hinweisen. Sie können es melden überProblemverfolgung.
Wenn dieser Fehler spezifisch für diese App ist, ziehen Sie einen anderen Protokollierungsaggregator in Betracht, zum Beispiel denBeiwagenmuster.
Weitere Informationen zum Logging in GKE finden Sie hierdokumentieren.
Wenn Sie cOS mit Docker verwenden, sollten Sie außerdem auf die Containerd-Version umsteigen, da erstereveraltet.