Andrey
kubectl get pod | grep nginx | grep ingress kubectl logs $nginx-ingress-pod | grep $hostname
Andrey
Хм. А по имени workload’а нельзя?
с термином workload я не знаком) логи можно получить только от пода, не от деплоймента
Pavel G
Можно получать от всех подлы сразу? Или надо по одному опрашивать?
Pavel G
Плюс для такого запроса нужен kubectl )
Andrey
подскажите способ(ы) подсоединять внешний сервер, находящийся в одной приватной сети с кластером, ко внутренним сервисам в cluster.local. На данный момент мне предлагается: а) пробросить маршрут через: ip route add 10.96.0.0/12 via <IP адрес ноды кластера> б) добавить в /etc/resolv.conf: nameserver 10.96.0.10 Это работает, но мне не нравится такой костылизм.
Andrey
надо работать с сервисами внутри кластера и общаться с сервисом через svc.namespace.cluster.local
Andrey
если вдаваться в детали, есть продукт-монолит, котрый по частям перевозят в кубер. В будущем всё это будет вариться внутри кубера и проблем не будет. В промежуточный период надо несмигрированной части продукта общаться со смигрированной, которая уже в кубере.
Andrey
сервис для чего?
Andrey
так, для dns нарыл решение через dnsmasq: https://blog.heptio.com/configuring-your-linux-host-to-resolve-a-local-kubernetes-clusters-service-urls-a8c7bdb212a7 для роутинга наверное такое простое решение не получится
Sergey
а то выглядит со стороны как будто вы хотите соединить из разных куб-кластеров в вебе и в локалке один и тот же сервис))
Andrey
есть два приложения, одно в кубе, другое нет. Мне их надо связать так, чтоб приложение, которое не в кубе, сразу обращалось по svc.namespace.cluster.local. Вроде же расписал выше.
Andrey
да, именно так
Andrey
просто это приложение потом будет в кубе, но девелоперы его уже сейчас пишут так, как будто оно там
Andrey
и оно рассчитывает на сервис дискавери и прямой доступ в сеть кубера
Andrey
а поскольку переходный период затягивается, нужно относительно надёжное решение, а не тупой маршрут через IP адрес одной ноды кластера
Anonymous
не представляю как они его пишут, по завету 12-факторов, оно должно с пол-пинка и там и там заводиться, лишь конфиг должен изменяться
Andrey
это древнее энтерпрайзнутое говно мамонта, там не всё так быстро
Andrey
самые простые вещи типа ui перевезли, а ядро ещё нет, и ещё не скоро
Anonymous
hi guys у вас можно запостить предложение о контракте👍 ?
Sergey
hi guys у вас можно запостить предложение о контракте👍 ?
Если вы ищете человека, то вам сюда @devops_jobs
Dimujin
С ceph замучался, не могу его поднять на centos7 Если есть проверенное решение, поделитесь ссылочкой. Уже все варианты перепробовал...
Dimujin
Ceph поднимал на виртуалках. Сейчас буду пробовать в докере запускать
Siarhei
Ceph поднимал на виртуалках. Сейчас буду пробовать в докере запускать
Я как раз на пороге сего действия - в чем там случилась проблема?
Dimujin
закончилось както так ceph-deploy purgedata c7gfs02 c7gfs03 c7vmw04 c7vmw05 c7vmw06 ceph-deploy forgetkeys ceph-deploy purge c7gfs02 c7gfs03 c7vmw05 c7vmw06 c7vmw04 ceph-deploy purge $(hostname -s) ceph-deploy purgedata $(hostname -s) sudo rm -rf /etc/ceph/* sudo rm -rf /var/lib/ceph/*/* sudo rm -rf /var/log/ceph/* sudo rm -rf /var/run/ceph/*
Sergey
ceph в докере да вы оптимист
Dimujin
да? опять потерянное время? ставил эту версию, не пошла ceph-deploy install --release mimic
Gunslinger
всем привет, а по Helm тоже сюда можно вопросы задавать?
Sergey
Хм.. rook.io возможно спасёт вас)
а чем лучше minio.io, отзыв не дадите?
Pavel G
а чем лучше minio.io, отзыв не дадите?
Rook оркестратор для кластера)
Sergey
Rook оркестратор для кластера)
а в целом, по функционалу
Lex
надо работать с сервисами внутри кластера и общаться с сервисом через svc.namespace.cluster.local
https://hackernoon.com/locally-developing-kubernetes-services-without-waiting-for-a-deploy-f63995de7b99 посмотри во тут, может подойдет
Sergey
Minio конкурент ceph’a
а лол, рук для кубера я себе для петпроджектов ищу сторэдж обьектный шобы под композ поставить
Lex
спс, посмотрю
Там правда больше про дев. Прод как правильно сказали через сервисы экспозить.
Pavel G
https://hackernoon.com/locally-developing-kubernetes-services-without-waiting-for-a-deploy-f63995de7b99 посмотри во тут, может подойдет
Хорошая штука, telepresence - запускать часть кластера .. на локальной машине разработчика ))) бомбично)
Lex
Бесшовный remote dev env на кубере для микросервисов, и не только.
Gunslinger
вопрос такой: пробую сварить коктейль из kafka в kubernetes (локально в minikube) через Helm согласно этой инструкции https://github.com/kubernetes/charts/tree/master/incubator/kafka Версия без external access работает вполне успешно Но как только меняю в values.yaml в разделе exposed на enabled: true и стартую (в новом неймспейсе этот chart) то начинается веселье. под с кафкой уходит в Init:CrashLoopBackOff Понимаю что кейс довольно специфический, но вдруг кто-то сталкивался
Valerii
Всем привет. Вопрос про rollback deployment'ов: скажем у меня в deployment'е постоянно указан образ app:latest и для обновления сервиса мне нужно по сути просто спулить новый образ. Если я хочу откатиться, то откуда кубер возьмёт предыдущий образ, если он точно такой же app:latest? Или принято прямо по версиям выкатывать? Плюс в самом deployment'е стоит imagePullPolicy: Always. Насколько принято так делать и в чём минус Always тут в вышеописанном сценарии? Спасибо.
Valerii
У меня в кубере-через-ранчер latest не цепляется. Указываю принудительно версию
И что каждый раз прописываете версию вручную или как-то заавтоматизировали?
Pavel G
Valerii
Ещё вопрос по ingess'ам: есть ли возможность выставлять наружу сервис через clusterip, а не nodeport в стандартном ingress'е на GKE? Перехожу с Rancher/Cattle и там аналогичная возможность есть, т.е. микросервисы открывают только свои порты в их локальную 10.42.0.0/16 сеть и далее ingress Rancher'а выставляет их наружу, не открывая и не занимая никаких дополнительных портов на хосте/ноде. При этом на load balancer'е cloud provider'а (AWS) указаны только 80 и 443 порты.
Valerii
Вручную, пока так удобнее, но думаю над вариантами.
Адище какой. У меня пока сделано так: на dev окружение автоматом выкатывается образ dev:latest, который собирается из master ветки. Далее в нужный момент я отрезаю release/* ветку и из неё автоматом собирается release:latest, который автоматом выкатывается на staging. Далее есть ручной таск, который берёт образ release:latest, перетэгивает его на prod:latest и это вручную деплоится в prod. Таким образом prod защищён от автодеплоя release:latest :)
Pavel G
Похоже на адище)
Pavel G
Когда готовы апгрейд делать, открываю в гуе и ставлю новую версию и начинается ролаут, по инстанс
Anton
простая практика - оперется на систему контроля версий. на tag, на commit hash, что там удобнее
Stanislav
Но я сделал в кластере свой локальный балансер, и GCLB смотрит только на его нодепорт.
Valerii
очевидно что ему некуда откатываться будет. вернее ты откатишь состояние деплоймента, но образ будет тот, что на данный момент latest
Очевидно, но не совсем. У меня и версия контейнера создается (от номера билда) и хэш. Но в том же Rancher на Cattle после deploy, остаётся висеть убитый контейнер предыдущей версии (с тем же тэгом latest). Если есть необходимость откатиться, то вместо finish upgrade делается rollback, который убивает текущий свежий контейнер и запускает остановленный предыдущий, не перекачивая его из реестра.
Stanislav
Там в GCP удобство в том, что ты через именованные порты связываешь это и куда оно там в очередной раз выставится - тебя не греет
Stanislav
Самое сложное было в выявлении и автоматизации таргетирования на нодепулы
Valerii
Там в GCP удобство в том, что ты через именованные порты связываешь это и куда оно там в очередной раз выставится - тебя не греет
Это понятно (хотя можно и без именования это сделать), но на ноде порты открываются, мне это не очень нравится. Хотя эти порты и локальные, но всё же на шаг назад по безопасности как-то получается :(
Stanislav
А в чем небезопасность порта? В том, что голый сервис? Я вот нжинксом внутри кластера прикрыл и балансер на него приземлял. Это позволило избежать проблемы асинхронного лага между окончанием реконфигурации GCLB и реальным эффектом от изменений. Правлю только внутрикластерный балансер часто.
Valerii
--confirm-upgrade, -c Confirm that the upgrade was success and delete old containers
Valerii
--rollback, -r Rollback to the previous deployed version
Valerii
А в чем небезопасность порта? В том, что голый сервис? Я вот нжинксом внутри кластера прикрыл и балансер на него приземлял. Это позволило избежать проблемы асинхронного лага между окончанием реконфигурации GCLB и реальным эффектом от изменений. Правлю только внутрикластерный балансер часто.
Небезопасность, на мой взгляд, в том, что открываешь дополнительные порты на ноде. Так то они в локальной сетке и на них только load balancer смотрит, но тем не менее, на мой взгляд, несколько странно, что K8s не позволяет делать так же, как и старый Rancher на Cattle + ещё плюшки. Получается минус возможности какие-то :(
Stanislav
Реализация открытости нодепортов в GKE устроена следующим образом. Там сеть Calico, ставится iptables правило которое заруливает это на нужный под.
Stanislav
Связность порта и пода полностью автоматически на плечах кубера