Dmytro
попробуй kubectl drain $NODE Шуделлер перепланирует поды с этой ноды на другие
Можно ещё сделать кордон ноде и удалить под через kubectl (но наверное сначала сделать failover чтобы мастером другая реплика стала?)
Dmytro
я из-за этого столкнулся с проблемой, что для вручную запущенного docker-compose на машине в кластере нельзя задать изоляцию сети: контейнеры легко ходят по сети кубера, игнорируя опции в compose.yml. К примеру это легко может дропнуть базу, так как домен postgres резолвится в кубер вместо локального postgres из компоуза.
Ух, так зачем же на ноде кубера ещё непонятно что через докер композ стартовать? Если так делаете то пропишите в докер композ файле явно создание новой overlay network и чтобы все контейнеры в этом файле её юзали
Denis
Всем привет, есть кто использует версию k8s 1.10.6?
Denis
Есть подозрение что там есть баг с шедулингом на taint ноды.
Øk_gø_løve
Мне вебсокет нужен
Dmytro
мне в helm не устраивает только что при удалении он не удаляет pv и pvc
Так он и не должен, а как делать реинсталл чарта если все данные будут грохаться вместе с pc если удалить чарт?
V
Так он и не должен, а как делать реинсталл чарта если все данные будут грохаться вместе с pc если удалить чарт?
ну когда делаю purge как-то даже не знаю приходится ещё подчищать потом а то при перестановки ругается с о pvc такой уже есть
Dmytro
У меня кстать сносил, поэтому новый storageClass с политикой Retain
Наверное имеется ввиду что чарт создавал storage class такой или по такое было в дефолтном storage class
Dmytro
А есть идеи как можно задетектить, что docker build ничего не сделал без танцев с вытягиванием digest?
А почему танцы? Сравнить хеш текущего образа и latest это один иф в баше. Наверное можно парсить вывод docker build и смотреть что последний слой был from cache но имхо это более хрупко и в случае гитлаб докер раннеров один фиг нужно спулить latest тег из реджистри чтобы заюзать —cache-from флаг у docker build команды
Dmytro
это те самые танцы. И если build сервер один, то лезть в registry тоже 5-10сек
Юзкейс какой-то то очень маленькой компании с одним билд сервером с огромным локальным диском?
Rainbow
Да
Dmytro
Ну хранить локально на билд сервере latest образ и с ним сравнивать хеш тогда
Rainbow
Я так смысла и не пойму... не делать docker push лишний?
Dmytro
не в latest только же, а какой-то master, по веткам. Иначе будут мешаться друг другу
Само собой, latest текущей ветки у меня с фоллбэком на latest мастер ветки
Dmytro
Я так смысла и не пойму... не делать docker push лишний?
Да, а смысл пушать новый тег если образ не поменялся? Особенно если тег не кусок коммит хеш а что-то инкрементальное
Dmytro
Враппер вокруг скриптов. Я нашел новое дно
Враппер на питоне вокруг бинаря на го (копс) генерящего терраформ, всё так. Я вот тоже не смог с этим жить и меняю компанию
Dmytro
Это от версии и от coredns никак не зависит, господин некропостер
Хреново, тут в чате месяца два назад меня убеждали что с coredns проблемы пропали. И да, сорри за некропостинг - больше месяца не читал чат
Rainbow
Да, а смысл пушать новый тег если образ не поменялся? Особенно если тег не кусок коммит хеш а что-то инкрементальное
Спасибо за совет, не додумался. CI ускорился на 30сек (13 docker push все же тормозят просто так). Пустой комит прогоняется через ci за минуту, буду ещё думать как ускорить.
Eduard
Товарищи, а как дебагать следующую ситуацию: - docker build на 18 stable - docker run на локали - приложение работает без сбоев - docker run на паре серверов тоже всё гуд - docker run для приложения на k8s master-е - приложение начинает трэйсбечить как бешенное, несвязанными ошибками. - kubectl apply -f pod.yaml - тоже самое. k8s катался kubespray-ем, calico. Приложение просто рестуха для генерации пакетов хельма: - flask - subprocess - helm
Человек
А почему оно на мастере ранится ?
Anonymous
на всякий случай - limits.conf и sysctl крутились ?
Eduard
А почему оно на мастере ранится ?
да разница, похоже суть в разнице версий
Eduard
И весит оно для оперативы метров 20
Eduard
неа, debian
Etki
с какими ошибками имеешь дело-то? а то пока звучит как "не работает"
Anonymous
неа, debian
ну давай ошибок тогда
Eduard
Тут сурцы: https://github.com/egeneralov/helm-chart-generator-api
Dmytro
Вот, кстати интересный вопрос - кто кубер в клауде гоняет - какой там экономический смысл ? за каждый балансировщик по 5 баксов платить ?) или в aws попроще условия ?
У меня обратный вопрос про baremetal, PV крутить самим, лоадбалансер тоже, автоскейлинга нет. В чем смысл вообще кубера тут?
Etki
Тут сурцы: https://github.com/egeneralov/helm-chart-generator-api
что за ошибки-тооооооооооооо
Eduard
что за ошибки-тооооооооооооо
Прямо сейчас - рвёт коннект
Eduard
Сейчас соберу дебагнутую версию
Eduard
Вытащу
Eduard
gunicorn)
Anonymous
У меня обратный вопрос про baremetal, PV крутить самим, лоадбалансер тоже, автоскейлинга нет. В чем смысл вообще кубера тут?
не хочу своими руками впн между серваками поднимать, лоад балансинги и прочее. пускай кубер магию делает.
Человек
А дальше регрессии рулится
Человек
Ингрессом
Человек
DNS сname ами на один Айпи настроены
Dmytro
Не
Так редирект на хттпс они только в ALB запилили насколько я помню, а в ELB такого нет и надо самом на нжинкс делать
Dmytro
Спасибо за совет, не додумался. CI ускорился на 30сек (13 docker push все же тормозят просто так). Пустой комит прогоняется через ci за минуту, буду ещё думать как ускорить.
Думаю что если посмотреть повнимательнее то ещё что-то можно в .dockerignore закинуть, например тесты (тесты можно запускать в отдельном параллельном джобе)
Vlad
В kube-aws для этого сделан был просто systemd unit который при shutdown текущей ноды делает ей drain через kubectl
ну, принцип абсолютно тот же. только напрямую в GKE изменения в node делать нельзя, но можно делать кастомизацию через указание shutdown script
Dmytro
Фух, дочитал :)
Dmytro
Народ, а кто будет на devoops в следующее воскресенье?
Vlad
Вроде там тоже можно кастомный имейдж для хоста как и в амазоне?
думаю, что нет. это всё же сервис, который предоставляет GCP. я бы на их месте такого бы не делал. да и зачем? я же покупаю сервис и хочу, чтобы он работал надёжно.
Dmytro
Насколько я знаю можно, бывший коллега сейчас крутит на gke кластеры, сам не пробовал
Dmytro
https://aws.amazon.com/blogs/opensource/aws-service-operator-kubernetes-available/ что думаете? Мы сделали подобное 2 года назад для стеков клаудформейше но там просто под слушал CRD и запускал aws cli cloudformation ...
Dmytro
До сих пор не уверен что это хорошая идея
Øk_gø_løve
Andor
Dmytro
В отпуске был, много свободного времени. Все срачи я прокрутил а там где обсуждения и ссылки местами даже полезно, засейвил даже штук 5 ссылок на почитать потом
Andor
aws оператор это забавно
Vlad
Народ, а кто будет на devoops в следующее воскресенье?
я хотел в спб сходить, но пересеклось с отпуском, поэтому увы. =)
Никита
Denis
Всем привет! Подскажите, что не так: --- apiVersion: v1 kind: ServiceAccount metadata: name: deployment-manager-serviceaccount namespace: develop --- kind: Role apiVersion: rbac.authorization.k8s.io/v1beta1 metadata: name: deployment-manager-role namespace: develop rules: - apiGroups: [""] resources: ["deployments", "replicasets", "pods", "statefulset"] verbs: ["get", "list", "watch", "create", "update", "patch", "delete"] --- kind: RoleBinding apiVersion: rbac.authorization.k8s.io/v1beta1 metadata: name: deployment-manager-rolebinding namespace: develop subjects: - kind: User name: deployment-manager namespace: develop roleRef: kind: Role name: deployment-manager-role apiGroup: rbac.authorization.k8s.io При kubectl get po -n develop выдает Error from server (Forbidden): pods is forbidden: User "system:serviceaccount:develop:deployment-manager-serviceaccount" cannot list pods in the namespace "develop"
Denis
Перед этим настроил kubectl: echo "${KUBE_CA_PEM}" > kube_ca.pem kubectl config set-cluster default-cluster —server=${KUBE_URL} —certificate-authority="$(pwd)/kube_ca.pem" kubectl config set-credentials deployment-manager-serviceaccount —token=${KUBE_TOKEN} kubectl config set-context default-system —cluster=default-cluster —user=deployment-manager-serviceaccount —namespace develop kubectl config use-context default-system
Øk_gø_løve
Но это ж вроде не юзер
Øk_gø_løve
А ServiceAccount
Dmitry
https://docs.bitnami.com/kubernetes/how-to/configure-rbac-in-your-kubernetes-cluster/#use-case-1-create-user-with-limited-namespace-access - по такому мануалу делал с ssl ca и всё работает
Øk_gø_løve
Если я правильно понимаю, то не надо давать юзерам ServiceAccount
Rainbow
registry походу слои тащит в память, потому что с ограничением в 100мб слои по 400-500мб грузятся вечность. Хз где я скопировал deployment под registry, но 100мб мало, если таскает большие image.
Й
Такова природа работы Линукса с дисками. Все через... кэш
Rainbow
эм, если процессу дают ограничение по памяти, то сюда входит файл кэш? O_O
Й
Хмммм ...
Й
А может протестировать??