Как инициализировать системные службы в kubernetes pod?

#docker #kubernetes #systemd

#docker #kubernetes #systemd

Вопрос:

У меня есть образ из базовой ОС centos / systemd.когда я даю «exec / usr /sbin / init» в файле laucher контейнера и создаю контейнер с помощью docker, службы systemd запускаются. Но когда я создаю контейнер, используя тот же образ в kubernetes с тем же файлом запуска, службы systemd не подключаются.Как запустить /usr/sbin/init в kubernetes, чтобы службы systemd появлялись во время создания контейнера

Ответ №1:

Для решения этой проблемы вы можете использовать контейнер инициализации kubernetes, который запускается первым перед созданием основного контейнера и запускает необходимые службы.

 apiVersion: v1
kind: Pod
metadata:
  name: myapp-pod
  labels:
    app: myapp
spec:
  initContainers:
  - name: check-system-ready
    image: busybox
    command: ['sh', '-c', 'Your sysntax for systemd']
  containers:
  - your container spec
  

Делюсь здесь официальным документом контейнера инициализации kubernetes:https://kubernetes.io/docs/concepts/workloads/pods/init-containers /

https://kubernetes.io/docs/tasks/configure-pod-container/configure-pod-initialization/

Комментарии:

1. Пожалуйста, не публикуйте устаревший синтаксис initContainers!

2. это в официальном документе, он не обновляется, поэтому, и я думаю, это также зависит от используемой ими версии kubernetes.