k3s не запускается как daemoan, но работает при запуске вручную из командной строки
Я пытаюсь установить k3s в операционной системе Redhat на экземпляре EC2 (t3.xlarge).
Версия ОС:
$ cat /etc/*release
NAME="Red Hat Enterprise Linux"
VERSION="8.6 (Ootpa)"
Я устанавливаю MySQL на сервер. Это команды установки:
export K3S_DATASTORE_ENDPOINT='mysql://user:password@tcp(localhost:3306)/db_name'
curl -sfL https://get.k3s.io | sh -s - server --node-taint CriticalAddonsOnly=true:NoExecute --tls-san locahost
Однако я получаю ошибки:
$ systemctl status k3s.service
● k3s.service - Lightweight Kubernetes
Loaded: loaded (/etc/systemd/system/k3s.service; enabled; vendor preset: disabled)
Active: activating (auto-restart) (Result: exit-code) since Sun 2022-09-11 15:03:05 UTC; 5s ago
Docs: https://k3s.io
Process: 71759 ExecStartPre=/bin/sh -xc ! /usr/bin/systemctl is-enabled --quiet nm-cloud-setup.service (code=exited, status=1/FAILURE)
Sep 11 15:03:05 ip-172-31-28-136.eu-central-1.compute.internal systemd[1]: k3s.service: Failed with result 'exit-code'.
Sep 11 15:03:05 ip-172-31-28-136.eu-central-1.compute.internal systemd[1]: Failed to start Lightweight Kubernetes.
Sep 11 15:03:10 ip-172-31-28-136.eu-central-1.compute.internal systemd[1]: k3s.service: Service RestartSec=5s expired, scheduling restart.
Sep 11 15:03:10 ip-172-31-28-136.eu-central-1.compute.internal systemd[1]: k3s.service: Scheduled restart job, restart counter is at 109.
Sep 11 15:03:10 ip-172-31-28-136.eu-central-1.compute.internal systemd[1]: Stopped Lightweight Kubernetes.
Однако мне удается запустить вручную, используя:
k3s server
Какие результаты:
$ k3s kubectl get nodes
NAME STATUS ROLES AGE VERSION
ip-172-31-28-136.eu-central-1.compute.internal Ready control-plane,master 14m v1.24.4+k3s1
В чем проблема?
1 ответ
Я знаю, что прошло много времени с тех пор, как вы опубликовали это, но я столкнулся с той же проблемой, и все сводилось к синтаксической ошибке в сценарии запуска systemd. Если вы посмотрите /etc/systemd/system/k3s.service, вы увидите следующую строку:
ExecStartPre=/bin/sh -xc '! /usr/bin/systemctl включен --quiet nm-cloud-setup.service'
Команда "/bin/sh -xc '!" часть была проблемой. Если заменить эту строку на эту:
ExecStartPre=/usr/bin/systemctl включен --quiet nm-cloud-setup.service
Все будет работать так, как ожидалось.