Цель - Чего я хочу достичь?
Я хочу получить доступ к systemctl
из контейнера, в котором запущен узел kubernetes (ami: работает debian stretch)
Рабочая настройка:
Узел AMI : kope.io/k8s-1.10-debian-jessie-amd64-hvm-ebs-2018-08-17
Каталоги узлов, установленные в контейнере для работы systemctl
:
- / вар / бег / DBus
- / бег / Systemd
- / бен / systemctl
- / и т.д. / Systemd / система
Не работает настройка:
Узел AMI : kope.io/k8s-1.11-debian-stretch-amd64-hvm-ebs-2018-08-17
Каталоги узлов, установленные в контейнере для обеспечения работы systemctl
:
- / вар / бег / DBus
- / бег / Systemd
- / бен / systemctl
- / и т.д. / Systemd / система * * одна тысяча пятьдесят-одна
Отладка в попытке решить проблему
Для устранения этой проблемы с изображением debian-stretch
, не поддерживающим systemctl
с теми же креплениями, что и debian-jessie
1) Я начал с развертывания nginx, смонтировав в нем вышеупомянутые тома
kubectl apply -f https://k8s.io/examples/application/deployment.yaml
kubectl exec -it nginx-deployment /bin/bash
root@nginx-deployment-788f65877d-pzzrn:/# systemctl
systemctl: error while loading shared libraries: libsystemd-shared-
232.so: cannot open shared object file: No such file or directory
2) Как указывалось выше, файл libsystemd-shared-232.so
не найден. Я нашел фактический путь, посмотрев в узел.
admin@ip-10-0-20-11:~$ sudo find / -iname 'libsystemd-shared-232.so'
/lib/systemd/libsystemd-shared-232.so
3) Смонтировал /lib/systemd
в модуле nginx и снова запустил systemctl
kubectl exec -it nginx-deployment /bin/bash
root@nginx-deployment-587d866f54-ghfll:/# systemctl
systemctl: error while loading shared libraries: libcap.so.2:cannot
open shared object file: No such file or directory
4) Теперь systemctl
терпел неудачу с новой отсутствующей ошибкой
root@nginx-deployment-587d866f54-ghfll:/# systemctl
systemctl: error while loading shared libraries: libcap.so.2: cannot
open shared object file: No such file or directory
5) Чтобы устранить вышеуказанную ошибку, я снова искал узел для libcap.so.2
Нашел его по указанному ниже пути.
admin@ip-10-0-20-11:~$ sudo find / -iname 'libcap.so.2'
/lib/x86_64-linux-gnu/libcap.so.2
6) Видя, что вышеупомянутый каталог не смонтирован в моем модуле. Я смонтировал следующий путь в модуле nginx.
/lib/x86_64-linux-gnu mounted in the nginx pod(deployment)
7) Модуль nginx не может появиться после добавления вышеуказанного монтирования. Получение ошибки ниже:
$ k logs nginx-deployment-f9c5ff956-b9wn5
standard_init_linux.go:178: exec user process caused "no such file
or directory"
Подскажите, пожалуйста, как отлаживать дальше. И все, что требуется для монтирования systemctl изнутри контейнера в среде растяжения Debian.
Любые указатели для дальнейшей отладки могут быть полезны.