Никита
Но я хз, стоит ли тут продолжать.
Anton
коллеги, гляньте плиз
https://github.com/patsevanton/kubespray
здесь применены исправления для установки kubernetes через прокси.
Anton
https://github.com/kubernetes-incubator/kubespray/pull/3596
вот здесь я правильно понимаю что нужен только апрув от разработчиков kubespray?
bebebe
Anton
нее там CI ругается
Anton
и docker pull похоже не подхватил прокси (
G72K
https://www.youtube.com/watch?v=fYy-FrjLX2s
Чел параноик, это хорошо :) не понял его пассаж про "нужен immutable configmap, значит будем использовать environment vars, они мол immutable". Возможно он как-то коряво объяснил идею.
Etki
envvars нельзя поменять снаружи в рантайме
Etki
я думаю про это
G72K
Ну так это ничем не отличается от " читаем файл при старте приложения один раз", как у них судя по коду и было
Etki
Приложение может быть не только от них
G72K
Они про свои говорят, патчили их чтобы перетащить на env vars
G72K
Хак про разные limits чтобы размазать OOMKiller по времени крутой :)
Andor
мне кажется для этого надо хакать репликасет контроллер
Dmytro
А vertical pod scaler не сможет это сделать?
Andor
не уверен
Vladimir
Andor
хороший кадр
𝚔𝚟𝚊𝚙𝚜
Гугальнул: git-secret, git-crypt, Mozilla sops, bitnami sealed secrets operator
Поигрался сегодня с ними, в итоге выбрал git-crypt.
Удобно то, что он не требует никаких дополнительных телодвижений. Один раз настроил .gitattributes, после чего все нужные файлы автоматически добавляются и шифруются прямо в git.
Для Ksonnet я настроил фильтр на secrets.libsonnet
Теперь если есть какие-то данные которые мне нужно зашифровать, я просто создаю secrets.libsonnet в environment затем делаю include его так-же как и globals.libsonnet.
Etki
Danila
Longhorn в проде кто-то использует?
Danila
https://github.com/rancher/longhorn/
𝚔𝚟𝚊𝚙𝚜
Andrey
да и обновлялся недавно
𝚔𝚟𝚊𝚙𝚜
Ой прикольно, он целиком на bash написан
Etki
#проклято даже не заглядывая в репозиторий
𝚔𝚟𝚊𝚙𝚜
Не, походу я гоню, в репе кода то нет)
𝚔𝚟𝚊𝚙𝚜
https://github.com/rancher/longhorn-engine - вот основная репа, таки на го
Max
Ребят, подскажите, можно ли как-нибудь ускорить запуск подов в кубе? может какие параметры кубелета и apiserver'a подкрутить?
bebebe
Max
bebebe
Never
у вас какой k8s? managed, hosted?
Max
self hosted on bare metal
Max
поды stateless, stateful?
Если имеется ввиду использование каких-либо volumes и долгую инициализацию самого приложения в поде то этого нет
Max
сам контейнер на голом докере запускается за секунду
Max
в кубе же секунд 15-20
Sergey
может все таки имеджи виноваты?
Max
нет-нет, они спуллены на все машины
bebebe
Max
туплю, можно ли в kubectl run задать tolerations?
Max
прям аргументом
bebebe
да, через` —override`
Max
Поправочка: --overrides
Max
Max
c image pull policy never 2.397
𝚔𝚟𝚊𝚙𝚜
𝚔𝚟𝚊𝚙𝚜
хм, может и нет
𝚔𝚟𝚊𝚙𝚜
https://hsto.org/webt/q8/vv/zf/q8vvzfa4zw7ydge80hhj_higkhi.png
𝚔𝚟𝚊𝚙𝚜
в любом случае можешь попробовать containerd - без докера
𝚔𝚟𝚊𝚙𝚜
Max
Да тут проблема явно не в докере. У меня стоит задача быстро по требованию пользователя или стороннего сервиса запускать поды и ждать пока статус у пода станет Ready
Max
я предполагаю kubernetes делает все poolinгом
Max
или по крайней мере обновление статусов подов
𝚔𝚟𝚊𝚙𝚜
ты можешь посмотреть на что больше всего времени уходит
𝚔𝚟𝚊𝚙𝚜
Max
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Scheduled 21s default-scheduler Successfully assigned default/alpine-test to msk4
Normal Pulled 18s kubelet, msk4 Container image "alpine:latest" already present on machine
Normal Created 16s kubelet, msk4 Created container
Normal Started 15s kubelet, msk4 Started container
𝚔𝚟𝚊𝚙𝚜
что-то у тебя шедуллер долго думает
Max
3 секунды, ага
Max
ой, не, тут по-другому нужно считать
bebebe
так, я тут немного подшаманил
kubectl get nodes -o jsonpath='{.items[?(@.status.conditions[-1:].type == "Ready")].metadata.name}' | xargs -d" " -P0 -tI% time kubectl run alpine-test-% --restart Never --rm -i --image alpine:latest --overrides='{ "spec": { "template": { "spec": { "nodeSelector": { "kubernetes.io/hostname": "'%'" } } } } }' --command /bin/sh -- -c id
запустит на всех нодах и покажет время
да, и как правильно вам говорят выше, нужно было kubectl describe смотреть
Max
нужно посчитать время от момента принятия команды run, до появления ивента Scheduled
Max
bebebe
ща
выберутся все ноды в статусе ready и на них запустится alpine, и покажется время запуска
bebebe
только вы все так поаккуратнее, а то так в чейнибудь ботнет попадете
Max
Max
у меня на всех нодах запрещен запуск всего кроме того, что я хочу и системных daemonsetoв)
Max
всякие дашборды на отдельных мастерах
bebebe
Max
bebebe
я
Вам тут помойму уже советовали немного поменять оркестрацию и держать горячие поды
Max
Vadim