Dmytro
вообщем задача такая
Dmytro
kubernetes
Dmytro
на каждом хосте я могу поменять sysctl
Andor
я знаю как это сделать кубером, но ты всё равно делаешь какую-то странную хрень :)
Dmytro
но внутри docker image в контейнере
Dmytro
значения тоже менять нужно
Dmytro
можно было конечно внутри Dockerfile поменять все параметры
Dmytro
но я решил это делать через kubernetes
Alexey
Dmytro
https://kubernetes.io/docs/tasks/administer-cluster/sysctl-cluster/
Alexey
Упс
Andrey
https://xakep.ru/2018/12/05/kubernetes-flaw/
Andor
https://xakep.ru/2018/12/05/kubernetes-flaw/
уже трижды обсуждено в этом чяте
Andrey
уже трижды обсуждено в этом чяте
я не так часто его читаю
Etki
Ого, у журнала хакер.ру нашелся читатель
Anonymous
breaking news!
Аха, к нам клиенты уже повалили...
Антон
привет. извините за тупой вопрос, но можно как-то удобнее обновлять configmap, чем через ... --dry-run -o yaml | kubectl replace -f - ? гугление удобных мне способов наводит только на открытые issue на гитхабе типа этой: https://github.com/kubernetes/kubernetes/issues/24744
Nikolay
на хосте
Тебе нужно сначала разобраться в linux и контейнеризации, про namespaces почитай, выше советовали.
Антон
А почему kubectl apply не подходит?
имеете в виду, kubectl apply отредактированного файла с configmap?
Антон
хотелось бы просто автоматизировать выкачивание, редактирование и залитие configmap обратно. думал, может что-то удобное уже есть, но не нагугливается
Антон
чуть подробнее объясню - сейчас, например, чтобы отредактировать configmap, созданные не мной (, например, конфиг coredns) приходится экспортировать текущий конфиг, удалять из него версию и createdtime, редактировать и делать apply.
G72K
Видел в кубе патчи замержили, где от сервис аккаунтов будут отходить в пользу уникального токена на каждый под. Но когда это случится не понятно
Вот, нашел описание, интересные изменения. Все контроллеры/операторы, что не переедут на новые client-go поломаются :) https://github.com/kubernetes/kubernetes/issues/70679
Andor
не так удобно конечно как то что тебе хочется
Vadim
может кто-нибудь объяснить, для чего нужны StatefulSet? почему-то именно такой тип объектов рекомендуется использовать для zookeeper, но в доках kubernetes как-то слишком лаконично говорится о том, что это такое. не понимаю, в чем отличие от pod или deployment
Puma
может кто-нибудь объяснить, для чего нужны StatefulSet? почему-то именно такой тип объектов рекомендуется использовать для zookeeper, но в доках kubernetes как-то слишком лаконично говорится о том, что это такое. не понимаю, в чем отличие от pod или deployment
стейтфулсет говорит что у вас есть диск на кот ором нужно хранить состояние базы , а зукипер это база, соответственно при перезапуске она подтянет все данные что сохранила
Puma
стейтфулсет это тип пода
Антон
а нельзя сделать kubectl patch на конфигмапу?
"а что так можно было?" спасибо. погуглю, как это делается в случае с конфигмапами
Puma
а что будет с обычным подом, если он что-то пишет, допустим, в лог в persistentVolume?
у него будет девственно чистое состояние и он не будет помнить ничего что было раньше
G72K
Аааа, тю. Ну да.
Вот будут менять , в токенах будет audience и для аутентификации в волте будет отдельно свой токен, который аписервер подвердит, что такой есть, но принять его для операций не сможет https://github.com/kubernetes/community/blob/master/contributors/design-proposals/storage/svcacct-token-volume-source.md
Andor
а другие поды убиваются просто так что ли?
Vadim
Они нужны для прилаг, у которых есть состояние. Там есть ряд фишек, типа не убивать под просто так, запускать с постоянными именами и прочие вещи для БД.
вот, это я читал, но, прошу прощения, что значит "с постоянными именами"? я же name указываю, у меня никогда это имя не менялось у подов. это возможно при каких-то обстоятельствах?
Andor
где ты указываешь name?
Vadim
где ты указываешь name?
kind: Pod metadata: name: kafka2
Антон
@Andorka , что-то в доке только про patch на деплоймент. а если конфигмап не относится к деплойменту?
Andor
kind: Pod metadata: name: kafka2
ты руками под создаёшь что ли?
Vadim
ты руками под создаёшь что ли?
эм, ну конфиг прописал, kubectl create и поехали
Andor
@Andorka , что-то в доке только про patch на деплоймент. а если конфигмап не относится к деплойменту?
кажется можно сделать patch на любой ресурс https://kubernetes.io/docs/reference/kubectl/cheatsheet/#patching-resources
Andor
эм, ну конфиг прописал, kubectl create и поехали
ты под руками создаёшь, без контроллера?
Vadim
@Andorka да
Mentat
вот, это я читал, но, прошу прощения, что значит "с постоянными именами"? я же name указываю, у меня никогда это имя не менялось у подов. это возможно при каких-то обстоятельствах?
Метаданные которые ты указываешь снаружи, не видны приложению внутри. Оно как правило ориентируется на hostname(который в обычном поде из деплоймента будет генерироватся типа teamcity-deployment-7f6567bbd8-9p77t), dns(который опять же будет по такому алгоритму). А теперь представь что у тебя кластер например редисов, для которых новое имя хоста и днс - новый член кластера, изменение состояния. Старый выпал, поднялся под другим именем, считает себя например мастером. Будет момент неопределенности, который не факт что кончится хорошо.
Andor
@Andorka да
ты уверен что это то что тебе надо?
Andor
metadata.name - не хостнейм контейнера в поде
Vadim
ты уверен что это то что тебе надо?
вы имеете в виду реплики, они могут быть рандомно проименованы?
Andor
реплики тут ни при чём
Vadim
реплики тут ни при чём
а можно тогда ссыль, что значит с контроллером?
Andor
контроллер - например, Deployment или StatefulSet
Vadim
теперь всё встало на свои места. спасибо всем за объяснение!
Andor
руками поды создают в крайне редких случаях, когда точно знают, чего хотят
Andor
в обычных случаях следует создавать Deployment'ы
Dmitry
journalctl -u origin-node
Спасибо! Уже разобрался, что в моем случае мне нужны docker logs от origin контейнера
Mentat
руками поды создают в крайне редких случаях, когда точно знают, чего хотят
Просто создать поды руками в кубере - значит, что тебе фактически не нужен кубер и его возможности. Тебе нужен docker-compose, максимум :)
Andor
типа того
Dmitry
Лог драйвер какой?
В моем случае, у меня не systemd service, а контенер с origin бегущий. Соответсвенно логи хранятся в json, как обычно для докер контейнера. Честно говоря не доконца понял вопрос.
Andor
при чём тут логдрайвер если проблема была в том чтобы найти где и как запущен кубелет?
G72K
"мы не докер" проект скопировал таки полуторагодовалый код из докера , VFS драйвер теперь крут и там (на xfs с reflink) https://github.com/containers/storage/pull/246
Vadim
ребят, а как вообще kubernetes распределяет поды по нодам? Вот мне нужно StatefulSet из 4х подов, и я бы хотел чтобы всегда два пода были на одной машине, и два на другой, а при краше одной из нод не происходило так, что на одной ноде окажется 4 пода. и возможно ли так, что k8s создаст 3 пода на одной машине и 1 на другой? это как-то можно контролировать?
Denis
Накрутить антиаффинити ?