Alexander
Такая команда почему то не работает command:: - /websocket - -c - node server.js
Нужно путь писать до скрипта, /home/user/script.sh
Артем
Нужно путь писать до скрипта, /home/user/script.sh
С полным путем вообще не запускается yaml
Alexander
Что то ты делаешь не так, конфигурацию деплоймента обновляешь после изменений?
Alexander
Надо через kubectl
Alexander
Команда set
Артем
Надо через kubectl
command: - /websocket - -c - node server.js В этой команде первая строка это путь где лежит фаил, а третья должна быть команда. Правильно я понимаю?
Alexander
Ты подготавливаешь конфигурацию потом через kubectl делаешь get
Alexander
kubectl --kubeconfig=config set и т.д
Артем
Я хочу чтобы при деплойманте пода запускался фаил внутри пода , пытаюсь сделать через command
Pavel
yaml покажи
Артем
yaml покажи
Вот часть yaml - image: app name: app imagePullPolicy: Never command: - /websocket - -c - node server.js ports: - containerPort: 11080 volumeMounts: - name: shared-files mountPath: /var/www - name: php-fpm mountPath: /etc/php/7.1/fpm/pool.d/www.conf subPath: www.conf - name: php-fpm-xdebug mountPath: /usr/local/etc/php/conf.d/xdebug-dev.ini subPath: xdebug-dev.ini
Pavel
- image: app name: app imagePullPolicy: Never command: '/websocket' args: ['-c', 'node', 'server.js'] ports: - containerPort: 11080 https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/
Pavel
в yaml важны отсутпы. один неверный и вся структура идет лесом
Sergey
никогда такого не было и вот опять
Sergey
как будто еще с ансибла это было проблемой усвоить
Pavel
я начинаю встречать кодеров которые не знают ансибл, но хоят yaml
Артем
- image: app name: app imagePullPolicy: Never command: '/websocket' args: ['-c', 'node', 'server.js'] ports: - containerPort: 11080 https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/
command: '/websocket' args: ['-c', 'node', 'server.js'] Такая команда ошибку пишет, то что не верная команда command":"/websocket В первой строке путь до файла, а вторая запуск этого файла. Я правильно понимю?
Pavel
Вот кто Вы по профессии? ну явно не программист
Pavel
ай пардонте комманд нужно в [] обернуть. этоже массив
𝚔𝚟𝚊𝚙𝚜
Артем
ай пардонте комманд нужно в [] обернуть. этоже массив
Да теперь запустился, только пишет что дерриктория не найдена
Pavel
укажите полные пути до коммнады запуска и файла js
Артем
Pavel
а он там точно есть?
Артем
а он там точно есть?
Смотрите, у меня данные образа при сборке копируются в папку ./app, потом призапуске пода все файлы из app копируются в пустую папку mountPath: /var/www/. Может быть на этом этапе теряются пути?
Pavel
./ это отностильно чего? какой коммандой у Вас копируется из app в /var/www/. Которая еще и к томуже монтируется неизветсно откуда Права на файл созранябтся при копировании?
Артем
./ это отностильно чего? какой коммандой у Вас копируется из app в /var/www/. Которая еще и к томуже монтируется неизветсно откуда Права на файл созранябтся при копировании?
./ это корень образа. Копируется вот этой командой lifecycle: postStart: exec: command: ["/bin/sh", "-c", "cp -r /app/. /var/www"] Это для того что бы два пода видили общую папку
Pavel
cp -r /app/. /var/www - тут "." зачем? Зам тогда volumeMounts
Pavel
почему сразу не положит в нужное место, изменять содержимое контейнера - плохой тон
Артем
cp -r /app/. /var/www - тут "." зачем? Зам тогда volumeMounts
А как сделать так что бы один под видел папку другого?
Pavel
а файлы будут менться в нутри этой директории?
Vadim
может быть "два контейнера видели одну папку в рамках одного пода"?
Pavel
что быдет при записи в один файл?
Vadim
Да, все правильно
тогда два разных volumeMount в каждом контейнере
Pavel
тут еще с одинм подом не разобрались, а уже про volumeMount в разных контейнерах
Pavel
command: ['/app/websocket'] - так запускается?
nobody
Добрый день коллеги! Делал ли кто-нибудь так, что бы до подов могли достучатся машины, которые не находятся в кластере kubernetes ? Не подскажите куда копать ?
Артем
тут еще с одинм подом не разобрались, а уже про volumeMount в разных контейнерах
В контенере есть папк с проекто допусти она должна быть /app, что бы эту папку видел другой контейнер nginx. Я создал одну общую пустую папку volumeMount /var/www, скопировал проект в нее с папки app и примантировал и сделал доступным для двух подов. Разве это не правильно?
Puma
Ингресс или порт экспортер
Andrew
Но вообще это плохая практика
nobody
Ингресс или порт экспортер
Интересует именно так называемые directly routable pods
Артем
да не вопрос но: - если оба пода на одном узле - если будете писать в общие файлы может быть из фалов каша
это один под с двумя контейнерами, если есть варианты проще, то какие?
Артем
И пути сбиваются может из-а этого
Puma
Интересует именно так называемые directly routable pods
Наверно стоит в принципе пересмотреть этот подход если он вдруг стал нужен
Pavel
command: ['/app/websocket'] - так запускается?
Andrew
а чем она плоха ?
Ну вообще надо смотреть конкретный кейс и реализацию, и от этого отталкиваться. Если нодпорт ловит поды по селектору, а под просто один, то это норм, а направлять на конкретный под траф - херово
Артем
command: ['/app/websocket'] - так запускается?
Нет вот что пишет arting container process caused "exec: \"/app/websocket\": permission denied": unknown
Pavel
/app/websocket - какие у него права?
Pavel
и что это вообще за файл?
Артем
/app/websocket - какие у него права?
это папка где лежит фаил server.js
Pavel
билять дети виндовс
Pavel
каким приложение должне быполниться js файл?
Puma
Ахахаха блин чувак ты сделал мой день
Dmytro
Puma
Чувак ты в докере его сева запусти и станет легче
Rainbow
Артем
node server.js
Pavel
у него ща мозг поплыет от всяких #!. "все есть файл". и что е виндах все документы открыабтся тупем привязки C:\programm file\path\to\app.exe %1
Pavel
в контейнер еесть node?
Артем
Есть
Pavel
где?
Артем
где?
Если в под заходишь и запускаешь его в ручную он поднимается
nobody
Добрый день коллеги! Делал ли кто-нибудь так, что бы до подов могли достучатся машины, которые не находятся в кластере kubernetes ? Не подскажите куда копать ?
Наврно стоит описать кейс по подробней. Мы только начинаем использовать Kubernetes и хотим перенести первый сервис в него, на данный момент в качестве service discovery мы используем consul, и отказатся от него на данный момент будет очень дорого и сложно. По этому хочется что бы можно было регать или поды в консуле, или создать отдельный DC в kubernetes и приконнектить его к сущесвующему, а для этого нужно что бы ip подов были доступны для машин вне кластера
Артем
вот этой командой node server.js
Pavel
полный путь до файла
Артем
var/www/app/websocket
Dmytro
вот этой командой node server.js
Сначала сделай чтобы в докере локально стартовало приложение с таким CMD/entrypoint
Dmytro
Потом уже имеет смысл в этом чате спрашивать почему локально в докере стартует а в кубере нет (если нет)
Pavel
Выучить как миниму что такое полный и онтносительный путь - image: app name: app imagePullPolicy: Never command: ['/var/www/websocket/node'] args: ['server.js'] workingDir: '/var/www/websocket/'
Dmytro
А так обсуждение не по теме чата затянется надолго
Артем
Я понял спасибо