G72K
зачем тебе хранить стейт в кубе поверх вм, если его можно просто хранить в вм?
Чем вм отличается от бареметала? Почему в вм нужно, а в бареметале можно?
Sergey
но etcd будет против
Vadim
я хочу чего-нибудь типа kubectl exec <node> и при этом не настраивая ssh на самих нодах
у нас есть oc debug node/foo - она запускает суперпривелигированный контейнер, маунтит хост в /host и дает в него exec
𝚔𝚟𝚊𝚙𝚜
и менеджить права через RBAC, плюс логирование действий каждого пользователя желательно
Vadim
для этого надо свой плагин писать наверное
Andor
я хочу чего-нибудь типа kubectl exec <node> и при этом не настраивая ssh на самих нодах
Ну сделай плагин для кубектл который будет тебе делать под на хосте
Andor
А ну вон пример реализации даже
𝚔𝚟𝚊𝚙𝚜
А ну вон пример реализации даже
так /host маунт, не дает тебе возможности в хостовый неймспейс залогиниться
Andor
Ну ты чо скучны такой
Andor
Давай придумывать как это сделать
𝚔𝚟𝚊𝚙𝚜
но идея с pod на сессию мне нравится
𝚔𝚟𝚊𝚙𝚜
chroot же
неа, его не достаточно
Vadim
неа, его не достаточно
ну это maintenance mode буквально, зачем тебе полноценная сессия вообще?
Vadim
файлик поправить хватит
𝚔𝚟𝚊𝚙𝚜
хотя с mountPropogation: bidirectional, hostNetwrok: true, hostIPC: true, hostPID: true можно получить почти тоже самое
G72K
и менеджить права через RBAC, плюс логирование действий каждого пользователя желательно
Кто то точно делал это, тут проскакивало, какой то маленький стартап с хорошим блогом, но вылетело из головы напрочь
Vadim
sysdig falco такое делает, нет?
G72K
sysdig falco такое делает, нет?
Может и делает, но в голове эхо какого то другого продукта
Vadim
вот, делайте пока новый опеншифт не релизнулся
𝚔𝚟𝚊𝚙𝚜
файлик поправить хватит
а шару примаунтить, docker ребутнуть, kubelet обновить? - ну и все такое
𝚔𝚟𝚊𝚙𝚜
хотя последние два - не так критично, шару и с mountPropogation: bidirectional примаунтить получится, можно попробовать, но сдается мне, что это все равно не тоже самое хостовое пространство будет в chroot /host и рано или поздно это вылезет
Andor
"шару примаунтить"
𝚔𝚟𝚊𝚙𝚜
ну я условно
Vadim
а шару примаунтить, docker ребутнуть, kubelet обновить? - ну и все такое
напиши оператор для такого, зачем руками лезть?
𝚔𝚟𝚊𝚙𝚜
мало ли что пригодится на хосте сделать
G72K
и менеджить права через RBAC, плюс логирование действий каждого пользователя желательно
Вот (сам не запускал даже) https://gravitational.com/teleport/features/pam-for-kubernetes/
Vadim
в целях дебаггинга
потом на скраме "дебажил и случайно обновил кубелет" :)
G72K
рбак конечно же платный
За хороший репеллент от безопасников и аудиторов не жалко и заплатить
𝚔𝚟𝚊𝚙𝚜
В целом и freeipa сейчас неплохо с этим справляется. Но блин: apt install freeipa-client After this operation, 252 MB of additional disk space will be used.
Haber
Всем привет. Как настроить nginx ingress controller внутри одного namespace чтобы он работал только внутри него?
𝚔𝚟𝚊𝚙𝚜
G72K
Всем привет. Как настроить nginx ingress controller внутри одного namespace чтобы он работал только внутри него?
Там есть ключ командной строки, но тогда и конфригмапа контроллера тоже должна быть там
G72K
Вот это интересная идея
Коллега как раз такой контейнер сделал, exec в него и сразу в хосте. Главное кублет не перезапускать :) могу спросить что там внутри
𝚔𝚟𝚊𝚙𝚜
но лучше кубом и сразу в конейнере деплоить
G72K
в смысле даже внутри контейнера ничего выпонять не надо?
Ага (может там не exec а attach надо делать было?)
𝚔𝚟𝚊𝚙𝚜
интересно, наверное shell поменял
Vadim
с аттачем не так интересно :/
G72K
Кто нибудь harbor docker registry пользуется? Как там с освобождением места при удалении/перезаписи тэгов? А то у официального docker distribution все плохо https://gitlab.com/gitlab-org/gitlab-ce/issues/57897
𝚔𝚟𝚊𝚙𝚜
с аттачем не так интересно :/
а что attach делает, цепляется к stdin/stdout текущего процесса?
Vadim
а что attach делает, цепляется к stdin/stdout текущего процесса?
да, второй такой контейнер вряд ли запустишь
G72K
что, ДО СИХ ПОР?
В эпоху клауда удалять что-либо неприлично
Mikhail [azalio]
нет, пока ты его явно не снесешь, либо этого не сделает fencing/cloud-provider за тебя
# cat access.yaml | grep -A 1 strategy strategy: type: Recreate # cat access.yaml | grep repl replicas: 1 # kubectl get pod | grep access access-69d88c4f6d-sqgp9 1/1 Terminating 0 17m access-69d88c4f6d-tf882 1/1 Running 0 114s
Mikhail [azalio]
живут оба сейчас
Denis
живут оба сейчас
Тоже нормально после unknown переподнялись?
Mikhail [azalio]
Тоже нормально после unknown переподнялись?
мне надо чтобы вообще не поднимался второй если один запущен.
𝚔𝚟𝚊𝚙𝚜
@azalio а почему не statefulset?
Mikhail [azalio]
@azalio а почему не statefulset?
да не почему, еще не попробовал. Я к тому что стратегия recreate тут не поможет
Mikhail [azalio]
если тип deployment
𝚔𝚟𝚊𝚙𝚜
Mikhail [azalio]
Mikhail [azalio]
в манифесте написано, деплоймент поднялся
Mikhail [azalio]
# kubectl describe deployment access Name: access Namespace: default CreationTimestamp: Thu, 14 Mar 2019 19:23:35 +0300 Labels: run=access Annotations: deployment.kubernetes.io/revision: 1 kubectl.kubernetes.io/last-applied-configuration: {"apiVersion":"extensions/v1beta1","kind":"Deployment","metadata":{"annotations":{},"labels":{"run":"access"},"name":"access","namespace":... Selector: run=access Replicas: 1 desired | 1 updated | 1 total | 1 available | 0 unavailable StrategyType: Recreate
Vadim
Хм, вообще странно, а она точно применилась?
так и должно быть, Terminating - это под еще работает, но скоро её прибьют
Vadim
можно бить её с grace-period=0, но гарантии что момента когда оба пода работают не будет
Mikhail [azalio]
kube-test-node-ko01.i NotReady <none> 106d v1.13.2 вот тут живет сейчас
Mikhail [azalio]
терминейтед который
Mikhail [azalio]
и он вполне рабочий )
𝚔𝚟𝚊𝚙𝚜
вообще для такого рода гарантий был придуман StatefulSet, но я думал что Deployment с .spec.strategy.type==Recreate тоже так работает, во всяком случае @Maxpain177 точно писал так что поды с Recreate не переезжают если нода упадет
𝚔𝚟𝚊𝚙𝚜
это прям гарантирую, не может в StatefulSet быть больше подов чем в replicas
Vadim
это прям гарантирую, не может в StatefulSet быть больше подов чем в replicas
https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#deployment-and-scaling-guarantees нет такой гарантии