@kubernetes_ru

Страница 849 из 958
Yerlan
27.09.2018
08:36:54
ставлю на виртуалке, так что пробовал откат и заново с разными параметрами helm init ***. Всегда один результат

DASTAN
27.09.2018
08:38:38
sudo cat /sys/class/dmi/id/product_uuid этот айди должен быть уникальным на каждой ноде

Yerlan
27.09.2018
08:41:04
sudo cat /sys/class/dmi/id/product_uuid этот айди должен быть уникальным на каждой ноде
да, он уникальный... вот думаю может быть дело в RBAC... как-то он ограничивает доступ из namespace kube-system в namespace default

DASTAN
27.09.2018
08:41:42
я ставил через kubespray, и заливал через хелм без проблем и откатывал релизы

Google
Yerlan
27.09.2018
08:42:47
ок, тогда попробую весь кластер поставить через kubespray... хотелось официальными средствами, чтобы потом избежать проблем при обновлении

helm ставили тоже скриптом https://raw.githubusercontent.com/helm/helm/master/scripts/get?

потом helm init без дополнительных параметров?

DASTAN
27.09.2018
08:45:28
кстати, это пробовали? https://stackoverflow.com/a/46688254/1262176

Yerlan
27.09.2018
08:47:47
да, пробовал... так же

DASTAN
27.09.2018
08:48:16
helm ставили тоже скриптом https://raw.githubusercontent.com/helm/helm/master/scripts/get?
я на маке, и ставил через brew install kubernetes-helm

Yerlan
27.09.2018
08:49:58
ясно... спасибо за помощь... пошел разворачивать кластер через kubespray

DASTAN
27.09.2018
08:50:11
удачно все развернуть

да, пробовал... так же
https://github.com/helm/helm/issues/4020#issuecomment-390472404

Anton
27.09.2018
09:10:04
тут неожиданно понял что метрика container_memory_working_set_bytes содержит в себе memory.stat total_inactive_file, да вообще все содержит в себе =) я то до этого думал что fs cache глобальный, а он оказывается в рамках cgroup живет. кто нить алерт по приближению к memory limit пилил? так получается что container_memory_usage_bytes - container_memory_cache похоже соответствует тому набору ram, за которым нужно следить.

Andor
27.09.2018
09:10:48
немного не в тему этого чата вопрос :)

Pavel
27.09.2018
09:11:25
немного не в тему этого чата вопрос :)
но его тут уже обсуждали, кстати)

Andor
27.09.2018
09:11:48
ну это скорее в церковь метрик, чем про кубернетис

Google
Anton
27.09.2018
09:16:05
эт метрики кубера, вопрос его лимитов

Andor
27.09.2018
09:16:27
это метрики из cadvisor'а

они не кубер-специфичны

Anton
27.09.2018
09:16:41
ага, а он часть kubelet

Pavel
27.09.2018
09:16:43
ну это скорее в церковь метрик, чем про кубернетис
Согласен, но тем не менее именно с таким вопросом я уже офтопил тут некоторое время назад. @f84anton можешь глянуть через поиск, может страое обсуждение поможет.

Andor
27.09.2018
09:17:29
ага, а он часть kubelet
а библиотека prometheus-client - часть cadvisor, значит?

Anton
27.09.2018
09:17:51
ну это скорее в церковь метрик, чем про кубернетис
забыл совсем, тут ведь главный вопрос - "чем ставить кластер" и "как шаблонизировать yaml"

Andor
27.09.2018
09:18:17
вот именно!

Andor
27.09.2018
09:24:10
У меня - на usage

Pavel
27.09.2018
09:25:38
алерт по ram в итоге на что ориентируется?
container_memory_usage_bytes - мутная метрика, в двух словах. В мануале по cgroup пишут дословно так: If you want to know more exact memory usage, you should use RSS+CACHE(+SWAP) value in memory.stat(see 5.2).

Nata
27.09.2018
09:27:00
Привет. А тут есть те, кто юзает local-provisioner?

Мэттью
27.09.2018
09:27:20
я

Nata
27.09.2018
09:29:26
Есть вопрос. 95% времени всё работает ОК. Но иногда pvc из стейтфулсета начинают роутиться на одну и ту же ноду, и соответственно podы по affinity не могут запуститься. В логах все как бы как обычно, ничего такого, просто допустим 12 pvc из 15 ушли на одну ноду. Как такого избегать и почему такое может случаться вообще?

*при создании стейтфулсета

Anton
27.09.2018
09:31:18
local-provisioner же не создает сам pv

Nata
27.09.2018
09:31:59
он как раз создает pv (у меня создает )))

Anton
27.09.2018
09:32:35
*при создании стейтфулсета
в предыдущих версиях было поведение, когда шедулинг не учитывал расположение pv. потом нужно было feature gate включать чтобы шедулер сначала нашел где pv находится

он как раз создает pv (у меня создает )))
я чет упустил, каким образом?

Nata
27.09.2018
09:32:59
и допустим на каждой ноде висит по 10 свободных pv. Но при создании statefulseta pvc решает все pvc для парочки нод отправить допустим на четвертую

Google
Nata
27.09.2018
09:33:42
запускаются поды провижнера, смотрят директорию, находят точки монтирования, создают PV

Anton
27.09.2018
09:34:41
У меня - на usage
в контейнере писали здоровенный файл. процессы памяти жрали мало, но total_inactive_file вырос до лимита. usage не плох, конечно, но нафига алертить когда файловый кэш съедает рам

Anton
27.09.2018
09:36:06
Nata
27.09.2018
09:36:42
ну это я выразилась не очень. Они постоянно и работают, и ищут точки монтирования

Anton
27.09.2018
09:37:24
https://github.com/kubernetes-incubator/external-storage/tree/master/local-volume

здесь все полностью описано

Creating a StorageClass (1.9+) To delay volume binding until pod scheduling and to handle multiple local PVs in a single pod, a StorageClass must to be created with volumeBindingMode set to WaitForFirstConsumer.

в 1.9 требовалось такое KUBE_FEATURE_GATES="PersistentLocalVolumes=true,VolumeScheduling=true,MountPropagation=true"

в 1.10 уже такого не просят

Nata
27.09.2018
09:42:19
блин, дичь написала

Anton
27.09.2018
09:42:28
ок, local volume provisioner превращает точки монтирования в /mnt/disks в pv. так ведь? и это забота админа намутить точек монтирования

на какой машине смонтировано, там pv и создастся

Mikhail
27.09.2018
09:45:24
Кто знает если у меня нода ушла в даун - когда сменится node.podcidr?

Nata
27.09.2018
09:46:01
1) я сделала точки монитрования, всё ок. Кубер нашел их. Допустим на 4 серверах 2) я запустила создание стейтфулсета с pod antiaffinity и 5pvc 3) кубер решил отправить все pvc только на ноду 01 и 04 (или любые другие, тут без разницы) 4) в стейтфулсете должно быть три пода. в итоге могут запуститься только два, PVC для которых ушли на 01 и 04.

Anton
27.09.2018
09:46:15
Nata
27.09.2018
09:46:26
то есть нужно еще pvc affinity или что-то в этом роде, а вот тут уже не понятно

Mikhail
27.09.2018
09:47:34
эт все на откуп cni насколько я понял
я почему-то думал что он берет то что прилетело на ноду

Vadim
27.09.2018
09:47:36
часть из этого будет в 1.12 емнип - https://github.com/kubernetes/kubernetes/pull/67556

Anton
27.09.2018
09:47:49
то есть нужно еще pvc affinity или что-то в этом роде, а вот тут уже не понятно
local volume provisioner эт частный случай для неудачников на bare metal. k8s не предполагает что pv может быть привязан к ноде

Google
Vadim
27.09.2018
09:48:49
вроде полноценные клаудпровайдеры умеют это лучше, local вряд ли приоритет

Nata
27.09.2018
09:49:09
маунтить папку в папку дешевле облака ?

Stanislav
27.09.2018
09:58:06
Костыли... Вот у нас ща - костыли... В кубернетес на проде не готовы, а сварм уже пришлось развалить...

Alexey
27.09.2018
09:59:54
kvaps
27.09.2018
10:00:24
не неудачники, а мастера костылей ?
не согласен, какая абстракция может быть быстрее отсутствия абстраций?

Stanislav
27.09.2018
10:00:50
swarm сам по себе разваливается, даже если не трогать...
Когда его поднимали, на эти грабли ещё не наступили...

Alexey
27.09.2018
10:01:18
Когда его поднимали, на эти грабли ещё не наступили...
я как поднял, ещё некоторое время рассказывал, что нафиг учить k8s, если swarm раз два и поднялся... пару месяцев назад выдохнул с облегчением, когда его убил.

А боль была с самого начала почти. Когда нельзя было на localhost забиндить сервис, только 0.0.0.0

И в iptables он лез так, что закруть доступ снаружи у меня не вышло.

Stanislav
27.09.2018
10:06:30
Не, мне в этом смысле было проще - с сетью заранее подумали, как правильно давать/не давать доступ. Точнее, соорудили нечто на nginx... Там в другом месте проблемы были...

Anton
27.09.2018
10:07:56
На берметал можно rook запустить :)
тут вопрос такой, этот сервис потребует ресурсы, и не только cpu\ram. с производительностью непонятно. локально писать на диск всегда будет лучше. ну и большинство stateful умеет свои данные сами реплицировать, подымаешь реплику на другой ноде, настриваешь бэкапинг и вроде как все норм

Artyom
27.09.2018
10:08:43
#whois ▫️Какой у вас проект или где работаете? Web приложения на dotnet core и angular6, ▫️В чём вы специалист? web frontend/backend, dotnet/java, angular/vue, android ▫️Чем можете быть интересны или полезны сообществу? Стараюсь задавать обдуманные вопросы ▫️Чем интересно сообщество вам? Активно продвигаю тему k8s и контейнеризации в компании, подстматриваю тут best practices ▫️Откуда вы? Тула ▫️Как узнали про группу? не помню, гуглил доки, искал что-то и наткнулся

Anton
27.09.2018
10:09:15
На берметал можно rook запустить :)
я бы и не против rook намутить, но разве в него посадишь базу бд на 600гб которая итак почти упирается в диск по iops?

Andor
27.09.2018
10:09:53
нет, но ты можешь посадить эту базу в локал провижнер и навертеть сверху какой-нибудь patroni

Artem
27.09.2018
10:10:02
если bare metal и нет внешнего стораджа, то, вероятно, это единственный вариант

mio
27.09.2018
10:16:20
У меня распределенный кластер k8s между континентами. Как красиво сделать так, чтобы ingress ходил на поды через сервис, которые в том же датацентре?

хостнейм один и тот же

Google
Andor
27.09.2018
10:16:45
омг

сделать разные кластеры - не вариант?

mio
27.09.2018
10:17:08
не хочется к этому прибегать

как-то taint можно притянуть сюда?

kvaps
27.09.2018
10:17:46
Почему все обсуждают local provisioner? Ведь local-provisioner, local-volumes и nodeAffinity для persistentVolumes - это три разные вещи. Мне не нравится local-provisioner, но я активно использую nodeAffinity для persistentVolumes, при этом смысла в local-volumes я вообще не понимаю, т.к. local-volumes - это тоже самое что и hostPath с nodeAffinity и type: Directory

mio
27.09.2018
10:18:57
я бы и не против rook намутить, но разве в него посадишь базу бд на 600гб которая итак почти упирается в диск по iops?
ну как вариант, эти самые иопсы размазать по серверам, чтобы упираться не в иопсы, а в сеть, если позволяет такое конечно

kvaps
27.09.2018
10:20:01
Anton
27.09.2018
10:30:05
Почему все обсуждают local provisioner? Ведь local-provisioner, local-volumes и nodeAffinity для persistentVolumes - это три разные вещи. Мне не нравится local-provisioner, но я активно использую nodeAffinity для persistentVolumes, при этом смысла в local-volumes я вообще не понимаю, т.к. local-volumes - это тоже самое что и hostPath с nodeAffinity и type: Directory
не совсем точно. local volumes из local volume provisioner отличаются от hostPath во первых ты можешь управлять политикой, разрешить многократно монтировать или нет, грубо говоря во вторых ты увидишь метрики, например kubelet_volume_stats_capacity_bytes в третьих ты всетаки изображаешь будто бы у тебя нормальный провижонинг, можешь съехать на такой в случае чего в четвертых local volume provisioner может очищать volume после удаления pvc, как это делают взрослые дяди

Vadim
27.09.2018
10:30:39
кроме того он на порядок безопаснее hostPath

kvaps
27.09.2018
10:33:20
не совсем точно. local volumes из local volume provisioner отличаются от hostPath во первых ты можешь управлять политикой, разрешить многократно монтировать или нет, грубо говоря во вторых ты увидишь метрики, например kubelet_volume_stats_capacity_bytes в третьих ты всетаки изображаешь будто бы у тебя нормальный провижонинг, можешь съехать на такой в случае чего в четвертых local volume provisioner может очищать volume после удаления pvc, как это делают взрослые дяди
> управлять политикой, разрешить многократно монтировать или нет, грубо говоря > ты увидишь метрики, например kubelet_volume_stats_capacity_bytes спасибо, хоть кто-то дал внятный ответ > local volume provisioner может очищать volume после удаления pvc, как это делают взрослые дяди того же самого можно добиться и с hostPath (используя finalizers)

Vadim
27.09.2018
10:36:23
почему? - обоснуйте
selinux, например

Andor
27.09.2018
10:36:59
использование selinux автоматически делает вашу систему безопасной!

Vadim
27.09.2018
10:38:10
ну и всякие вещи типа access control, хотя бы по gid

kvaps
27.09.2018
10:46:56
ну и всякие вещи типа access control, хотя бы по gid
А оно разве не kubelet'ом обрабатывается после маунта и непосредственно перед запуском пода - т.е. независимо от бэкенда?

Я лично не использую selinux и access control для волюмов, так что точно сказать не могу, но мне интересно, может вы в курсе?

Vadim
27.09.2018
10:52:26
А оно разве не kubelet'ом обрабатывается после маунта и непосредственно перед запуском пода - т.е. независимо от бэкенда?
макнт не причем, дело в пермишшенах кому писать а кому нет https://kubernetes.io/docs/tasks/configure-pod-container/configure-persistent-volume-storage/#access-control

kvaps
27.09.2018
10:55:37
макнт не причем, дело в пермишшенах кому писать а кому нет https://kubernetes.io/docs/tasks/configure-pod-container/configure-persistent-volume-storage/#access-control
> When a Pod consumes a PersistentVolume that has a GID annotation, the annotated GID is applied to all Containers in the Pod in the same way that GIDs specified in the Pod’s security context are. Every GID, whether it originates from a PersistentVolume annotation or the Pod’s specification, is applied to the first process run in each Container. А, ну так это же и для любых других PV работать будет, в том числе и для hostPath

я имею ввиду если оформить hostPath как persistentVolume, а не цеплять напрямую в под

Страница 849 из 958