
Alexander
02.08.2017
12:25:02

Maksim
02.08.2017
12:25:19
volumeMounts:
- mountPath: /etc/nginx/template
name: template-volume
volumes:
- configMap:
defaultMode: 420
name: nginx-template
name: template-volume

Роман
02.08.2017
12:25:47

Maksim
02.08.2017
12:26:18
Можнр еще SubPath использовать для указания на файл

Google

Maksim
02.08.2017
12:27:04
https://kubernetes.io/docs/concepts/storage/volumes/#using-subpath

Роман
02.08.2017
12:27:09
А где-то можно почитать, что в этом темплейте значат, например, такие конструкции: $cfg := .Cfg ?

Maksim
02.08.2017
12:27:56
https://kubernetes.io/docs/tasks/inject-data-application/environment-variable-expose-pod-information/

Alexander
02.08.2017
13:41:48
Ребят, кто helm использует, а как там разруливать доступ к нескольким кластерам? Например есть у меня minikube локальный и кубы в проде/стейджинге. helm init вроде как работает с текущим контекстом, как разрулить?
хм нашел --kube-context делает вроде бы, что нужно

Andrey
02.08.2017
16:06:15
А можно сделать как нибудь у пода qos=guaranteed без установки cpu limit?
Ну или разрешить роду реюзать цпу если на ноде много лишнего
Поду *

Роман
02.08.2017
16:36:54

Maksim
02.08.2017
16:38:35
вмысле для конкретного ингресс-контроллера?
или для контретного правила ing?

Роман
02.08.2017
16:41:28

Maksim
02.08.2017
16:41:37
ммм

Google

Maksim
02.08.2017
16:41:48
темплейт он сразу для контроллера
по сути нужно менять код контроллера добавляя новые обработчки через аннотации кубера
у меня где-то в дальних планах есть задача написать a/b тестирование

Роман
02.08.2017
16:45:07

Maksim
02.08.2017
16:45:30
извини что ворпсом на вопрос
таки образом ты не изменишь настройки для конкретного vhost
в контроллере есть ряд переменных передаваемых через annotations
по сути там есть легкий демон, который постоянно тыркается в апи и получает ing (можно установтиь что бы работал только на конкретный namespace)

Роман
02.08.2017
16:48:13
у тебя есть представление как раотает ингресс-контроллер?
Примерное представление есть. Он собирает данные об ингрессах и изменяет конфиг в зависимости от того, что там написано. Так ведь приблизительно?
То есть, если я через аннотацию передам переменную (префикс ведь нужен какой-то), то получу то, что хочу?

Maksim
02.08.2017
16:48:43
после счего смотрит есть ли изминения относительно текущего конфига nginx, если есть то сохдает нвый конфиг из tmpl и перезапускает nginx
Да. Но для этой переменной нужен обработчик) в контроллере

Роман
02.08.2017
16:56:19

Maksim
02.08.2017
16:56:49
да

Fike
02.08.2017
16:57:14

Роман
02.08.2017
16:57:40

bebebe
02.08.2017
16:57:50
книгу с таким названием или курсы надо выпускать

Fike
02.08.2017
16:58:52
как будто другие пермутации в терминале иначе делаются

bebebe
02.08.2017
16:58:55
kubectl тяп-ляп | jq коллега-что-то-подсказал-две-недели-назад | дальше не помню

Google

Роман
02.08.2017
16:59:27
да
А ведь я могу использовать имя хоста в темплейте?
{{ if $hostname == (или как там пишется условие равенства) }}

Maksim
02.08.2017
17:00:17
Думается что да
можно использовать уже существующие переменные

Роман
02.08.2017
17:02:14

Maksim
02.08.2017
17:02:21
go template

Artem
02.08.2017
18:17:38
можно получить из секрета. надо сделать decode
если есть helm можно поставить stable/jenkins и посмотреть команду
либо в чарте его

vladget
02.08.2017
18:25:38
eviction manager: no observation found for eviction signal allocatableNodeFs.available - так это гавно починить? на 1.7.2

Let Eat
02.08.2017
18:28:35
под кюблетом нету тонны df процессов?

vladget
02.08.2017
18:31:08
вроде нет

Let Eat
02.08.2017
18:32:52
а в логах на тему NodeFs?

vladget
02.08.2017
18:35:17
Creating Container Manager object based on Node Config: {RuntimeCgroupsName: SystemCgroupsName: KubeletCgroupsName: ContainerRuntime:docker CgroupsPerQOS:true CgroupRoot:/ CgroupDriver:cgroupfs ProtectKernelDefaults:false NodeAllocatableConfig:{KubeReservedCgroupName: SystemReservedCgroupName: EnforceNodeAllocatable:map[pods:{}] KubeReserved:map[] SystemReserved:map[] HardEvictionThresholds:[{Signal:memory.available Operator:LessThan Value:{Quantity:100Mi Percentage:0} GracePeriod:0s MinReclaim:<nil>} {Signal:nodefs.available Operator:LessThan Value:{Quantity:<nil> Percentage:0.1} GracePeriod:0s MinReclaim:<nil>} {Signal:nodefs.inodesFree Operator:LessThan Value:{Quantity:<nil> Percentage:0.05} GracePeriod:0s MinReclaim:<nil>}]} ExperimentalQOSReserved:map[]}
--eviction-hard?
его прямо в systemd поставить?

Artem
02.08.2017
18:42:04
кто нибудь использует storage classes, dinamic provisioning?

Paul
02.08.2017
18:42:20
я использую, на цеф
что интрересует?

Artem
02.08.2017
18:42:50
как за местом следишь?

Google

Let Eat
02.08.2017
18:43:05
в логах должно быть что-нибудь про измерение диска или не будет ничего, но это если df зависло на каком-нибудь сломаном маунте

Artem
02.08.2017
18:44:35
и ещё вопрос. у меня провижионер отпадал, сейчас полсотни контейнеров в статусе terminating уже сутки висят, grace-period=0 не помогает

Paul
02.08.2017
18:44:44

Artem
02.08.2017
18:45:37
то есть перед тем как сделать claim нет проверок никаких?

Admin
ERROR: S client not available

vladget
02.08.2017
18:59:52
Could not get instant cpu stats: different number of cpus - вот еще...
застопал все kubelets, остановил докеры, убил докеры запустил, заработало....
а /var/lib/etcd нужно как то реплицировать отдельно, или оно вытянет с мастера по дискавери все?

Fike
02.08.2017
19:28:47
Вас не пугает сама возможность таким образом поиметь два узла, которые идентифицируют себя одинаково?
Рафт предполагает автоматический подсос данных от мастера вплоть до текущего состояния, все должно быть в порядке

vladget
02.08.2017
19:35:37
угу - понял.. ну вот он "подсасывает".. а потом крашиться на всех нодах...
container "etcd" is unhealthy, it will be killed and re-created.
Aug 02 19:31:40 kubelet[11626]: W0802 19:31:40.590748 11626 helpers.go:771] eviction manager: no observation found for eviction signal allocatableNodeFs.available
member "etcd-1" has previously registered with discovery service token
But etcd could not find valid cluster configuration in the given data dir (/var/lib/etcd).
/var/lib/etcd/ - не пустой

Роман
03.08.2017
08:14:11

Maksim
03.08.2017
08:14:31
map_hash_bucket_size" directive is duplicate in
Ошибка в темплейте

Роман
03.08.2017
08:14:59
Создаётся очень много файлов в каталоге /tmp с именем /tmp/nginx-cfg
В темплейте только одна такая директива.

Maksim
03.08.2017
08:15:18
nginx считает что не так

Google

Роман
03.08.2017
08:15:59
Да и в этих файлах тоже одна эта директива. Может, просто он пытается добавить все эти файлы...

Maksim
03.08.2017
08:16:15
нет только один

Elena
03.08.2017
09:25:44
Друзья, а какой вы используете http-код для readiness-пробы в случае, когда сервис еще не готов принимать запросы?

Dmitry
03.08.2017
09:29:19
В общем случае тот же, что и liveness =)

Elena
03.08.2017
09:31:52
Так а какой конкретно код?
Я пока кроме 503 ничего не придумала
Вроде, другого специального никакого нет.

Maksim
03.08.2017
09:33:29
положительным счтитается код 200
http ok

Dmitry
03.08.2017
09:33:40
200, иначе куб пульнет туда трафик раньше, чем под войдет в рабочий режим

Maksim
03.08.2017
09:33:52
любой другой воспринимается как феил

Let Eat
03.08.2017
09:35:25
В общем случае тот же, что и liveness =)
в теории:
liveness - должна отвечать на вопрос "надо ли перезапускать под". т.е. не должна включать в себя внешние зависимости (скажем обращения к внешним базам данных и проч, т..к если внешняя зависимость сломалась, то перезапускать под вряд ли поможет). но должна включать максимум внутреннего кода: те же thread pools, те же локи, фильттры и проч что может сломаться.
readiness - должна отвечать на вопрос "можно ли слать клиентский трафик на под", т.е. в теории может включать и внешние зависимости, если скажем подключение к ним проблемное (а с другго пода будет ОК возможно).
на практике все лепят один и тот же /version.txt какой-нибудь, который работает всегда, даже если основной код весь в дедлоках и не отвечает ни на что :)

Maksim
03.08.2017
09:36:31
Это вопрос к тому, используешь ты liveness и readness правильно, или как затычку в коде для галки)