Traefik wird standardmäßig als user root ausgeführt, was in einer Produktivumgebung eher, um es vorsichtig auszudrücken, ungünstig ist.
Um traefik in den User traefik umzuziehen stelle ich euch folgendes Script zur Verfügung.
Voruassetzung ist, dass traefik im Verzeichnis /opt/traefik installiert wurde. Das Script erwartet das binary im Verzeichnis:
/opt/traefik/bin/traefik.
und die Configs in:
/opt/traefik/bin/traefik/etc/traefik.toml
/opt/traefik/bin/traefik/etc/dynamic.toml
/opt/traefik/bin/traefik/certs/acme.json
Damit das auch alles funktioniert, wird das Paket authbind nachinstalliert. Dies ist erforderlich um traefik, der jetzt im Userspace läuft, zu erlauben Ports unterhalb 1024 zu öffnen.
Traefik benötigt mindesten Port 80 und 443
#!/bin/bash
######################################################################
##
## RUNNING TRAEFIK AS NON ROOT USER
##
## VERSION: 1.0.1
## MAINTAINER: Mad Murdock
## LICENSE: >=GPLv2
##
######################################################################
set -x
TRAEFIK_PATH="/opt/traefik"
## CREATE USER TRAEFIK
useradd -d ${TRAEFIK_PATH} -M -s /bin/false traefik
## INSTALL AUTHBIND
apt install authbind
## CREATE FILES AND CHANGE PERMISSIONS
touch /etc/authbind/byport/{80,443}
chown traefik: /etc/authbind/byport/ -R
chmod 500 /etc/authbind/byport/*
chown traefik: ${TRAEFIK_PATH} -R
chown traefik: ${TRAEFIK_PATH} -R
if [ -f ${TRAEFIK_PATH}/etc/certs/acme.json ]; then
chmod 600 ${TRAEFIK_PATH}/etc/certs/acme.json
fi
## CREATE NEW TRAEFIK - SERVICE FILE
if [ ! -f /lib/systemd/system/traefik.service_UNUSED ]; then
cp /lib/systemd/system/traefik.service /lib/systemd/system/traefik.service_UNUSED
fi
cat >/lib/systemd/system/traefik.service<<EOF
[Unit]
Description=Starting Traefik kubernetes Loadbalancing service
After=network.target
[Service]
AmbientCapabilities=CAP_SETPCAP CAP_NET_RAW CAP_NET_BIND_SERVICE
CapabilityBoundingSet=CAP_SETPCAP CAP_NET_RAW CAP_NET_BIND_SERVICE
Type=simple
User=traefik
WorkingDirectory=/opt/lb/traefik_v2/bin
ExecStart=/usr/bin/authbind --deep ${TRAEFIK_PATH}/bin/traefik -configFile=${TRAEFIK_PATH}/etc/traefik.toml
#ExecStart=${TRAEFIK_PATH}/bin/traefik -configFile=${TRAEFIK_PATH}/etc/traefik.toml
ExecStop=/bin/kill \$( /sbin/pidof traefik )
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl stop traefik
systemctl start traefik
github traefik download

