Skip to content

Commit e165684

Browse files
authored
Kubernetes: gateway: start services via docker-systemctl-replacement (#3584)
- ensures all enabled services are running - acts as a proper init (PID 1) - reaps zombies, handles signals, etc.
1 parent 9aa8b58 commit e165684

File tree

1 file changed

+7
-4
lines changed
  • src/dstack/_internal/core/backends/kubernetes

1 file changed

+7
-4
lines changed

src/dstack/_internal/core/backends/kubernetes/compute.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -894,11 +894,14 @@ def _get_gateway_commands(
894894
# regenerate host keys
895895
"rm -rf /etc/ssh/ssh_host_*",
896896
"ssh-keygen -A > /dev/null",
897-
# start sshd
898-
"/usr/sbin/sshd -p 22 -o PermitUserEnvironment=yes",
899-
# run gateway
897+
# install gateway
900898
f"su ubuntu -c {quoted_gateway_commands}",
901-
"sleep infinity",
899+
# start docker-systemctl-replacement as an init replacement (PID 1), which
900+
# - starts and supervises enabled services (sshd, nginx, dstack.gateway)
901+
# - stops running services on SIGTERM (graceful shutdown)
902+
# - reaps orphan processes
903+
# See: https://github.com/gdraheim/docker-systemctl-replacement/blob/b18d67e521f0d1cf1d705dbb8e0416bef23e377c/INIT-DAEMON.md
904+
"exec systemctl default",
902905
]
903906
return commands
904907

0 commit comments

Comments
 (0)