@kubernetes_ru

Страница 574 из 958
Andor
21.05.2018
19:05:03
можно ещё трейсинг включать на полную катушку перед/после деплоя

Vladimir
21.05.2018
19:05:26
Шутка ли, но прошлые наши админы подрядчики вкрутили какую-то дичь с графаной, оно вешало цпу и тормозила всю приложеньку. "манеторинх", как только нашли и выковыряли - сразу все наладилось: и скорость ответа сервера на веб приложении, и там же скорость генерации страницы на пхп. Магия.
ну важно уметь семплировать данные, если получение их дорого стоит. Не надо собирать все на каждый заброс, особенно если подов или машин много однотипных - ты можешь собирать метрики по каждому 10-ому или 1000ому запросу и все равно иметь близкую к правильной картину

можно ещё трейсинг включать на полную катушку перед/после деплоя
например Staging или Cannary обвешан трейсингом по уши

или вообще там 1% процент машин в кластере обвешан им

Google
Alex Milushev
21.05.2018
19:14:02
Вопрос, а можно как-то равномерно размазать поды в деплойменте по failure domains?

Dmitry
21.05.2018
20:53:32
Всем привет. Подскажите, пожалуйста, какие есть бенчмарки для проведения нагрузочного тестирования контейнеров в кубике? Нужно сделать связку с Hora, может делал кто?

Dmitrii <freehck>
21.05.2018
22:35:56
Вопрос. Изнутри контейнера не могу установить внешнего соединения никуда. Стоит calico. Pod контейнера в неймспейсе default. Куда смотреть, подскажите пожалуйста. В документации кубера сказано, что по умолчанию поды должны принимать любые входящие и мочь создавать любые исходящие соединения. Почему у меня это не так — очень любопытно. K8s кстати 1.10.

Andor
21.05.2018
22:36:24
фсеть

Dmitrii <freehck>
21.05.2018
22:48:34
Может быть default namespace имеет какие-то особенные networking policies?

Andor
21.05.2018
22:48:51
кто ж тебя знает

Alexey
21.05.2018
22:53:44
Dmitrii <freehck>
21.05.2018
22:55:46
baremetal? а имена резолвятся?
virtualbox. имена не резолвятся

https://docs.projectcalico.org/v2.0/usage/configuration/ Смотрю на параметр DefaultEndpointToHostAction. Хочу уточнить у знающих людей: надо ли мне понимать его документацию как "calico по умолчанию блокирует весь трафик по направлению от пода к хосту"?

Nick
22.05.2018
00:43:58
Коллеги, чтот затупил с k8s. Создал сервисы grafana и influxdb в namespace kube-system. Хочу в grafan’e прописать data source -> influxdb, но туплю по какому dns имени обратится.

Nick
22.05.2018
01:08:52
Там что-то вроде influxdb.kube-system.svc.cluster.local
перепробовал уже 1001 вариант. Он же с мастера должен резолвится? Так да influxdb.kube-system.svc.cluster.local вроде в доке так пишут, но не резолвится

Google
Nick
22.05.2018
01:10:15
Хм а public hosted zone влияет на это? Хотя я и через паблик пробовал…

Konstantin
22.05.2018
01:11:05
cluster.local - это по умолчанию. При развёртывании сетевого стека может быть изменено. Попробуй резолвить с хоста dig @kube-dns-ip svc.cluster.local

Что возвращает kubectl get --all-namespaces pod kube-dns -o yaml?

Nick
22.05.2018
01:17:11
с этим проще) а то dig нигде не стоит)

kubectl get --all-namespaces pod -o yaml -l k8s-app=kube-dns вот так выдаст портянку. Из интересного spec: containers: - args: - --domain=cluster.local. - --dns-port=10053 - --config-dir=/kube-dns-config - --v=2

Что возвращает kubectl get --all-namespaces pod kube-dns -o yaml?
вся портянка https://gitlab.com/snippets/1717175

Konstantin
22.05.2018
01:27:53
перепробовал уже 1001 вариант. Он же с мастера должен резолвится? Так да influxdb.kube-system.svc.cluster.local вроде в доке так пишут, но не резолвится
С хоста может не резолвится так как у него свои DNS. Проверять надо из подов: kubectl exec -it pod-name -- bash (Работать будут только те, которые не из одного go файла состоят)

Nick
22.05.2018
01:28:39
я с мастера проверяю или тоже может не канать?

Konstantin
22.05.2018
01:29:25
cat /etc/resolv.conf на мастере

Nick
22.05.2018
01:31:19
domain us-east-2.compute.internal search us-east-2.compute.internal nameserver 172.20.0.2

Konstantin
22.05.2018
01:33:15
Не канает. Та команда dig, что я кинул выше, будет работать. Надо переопределять ip dns-серверов. Тогда будет работать

Nick
22.05.2018
01:34:21
хм…как-то это явно из доков не вычитал, что ns работаето только pod<->pod. Думал оно прозрачно для всего кластера. Ок, спс. Буду тыкаться изнутри пода

Konstantin
22.05.2018
01:35:53
хм…как-то это явно из доков не вычитал, что ns работаето только pod<->pod. Думал оно прозрачно для всего кластера. Ок, спс. Буду тыкаться изнутри пода
Да и там не уверен, что пингует (не помню уже пингует или нет). Но если напрямую к порту подключаться, работает

Nick
22.05.2018
01:37:05
Да и там не уверен, что пингует (не помню уже пингует или нет). Но если напрямую к порту подключаться, работает
он же резолв сразу сделает и ip покажет, а пинги не пройдут да. Там ICMP везде закрыт.

@kgubaev Посмотрел resolv.conf на нодах, такой же как на мастере

Что в принципе по моей идеи)) должно быть правильно, чтобы они друг друга по dns видели

но это никак не помогло проблеме =/ х3 чет не то с DNS внутри чтоле…

в графану же через прокси заходит - значит как-то оно работает

Konstantin
22.05.2018
01:57:30
Если из подов резолвится, то не в DNS проблема

Nick
22.05.2018
01:59:56
Google
Nick
22.05.2018
02:02:10
вообще в resolv.conf этот адрес 172.20.0.2 не пойму откуда. Может из-за этого проблема.

Konstantin
22.05.2018
02:03:20
Это Amazon прописывает. В подах другие dns. Они не имеют отношения к dns хоста

Nick
22.05.2018
02:03:52
Дык в подах в resolv.conf тоже самое

Konstantin
22.05.2018
02:06:01
Понял. У тебя --net=host используется. Тогда он не изолирует сетевой стек, а запускает под на стеке хоста

Nick
22.05.2018
02:08:02
это где такое?

Konstantin
22.05.2018
02:10:54
spec: hostNetwork: true https://github.com/kubernetes/kubernetes/issues/56934

Nick
22.05.2018
02:14:13
Для этого этот параметр надо явно указать при деплойменте сервиса.

Konstantin
22.05.2018
02:15:33
Для этого этот параметр надо явно указать при деплойменте сервиса.
Тот под, из-под котоорого тестируешь, у него прописан этот параметр?

Nick
22.05.2018
02:16:36
я такое специально не прописывал, но сейчас проверю

Нет. Конфиг нода минимальный.

Вроде кластер то пустой, только сделаный и конфиги все дефолтные. Поидеи графану каждые первый ставит…

Konstantin
22.05.2018
02:59:43
Дык в подах в resolv.conf тоже самое
Должно быть что-то такое $ kubectl exec -it gitlab-gitlab-runner-7584cf57fc-f94ks -- cat /etc/resolv.conf nameserver 10.96.0.10a search default.svc.cluster.local svc.cluster.local cluster.local lan options ndots:5

Nick
22.05.2018
03:00:59
сделал несколько тестовых POD в дефолтом namespace - они работают. Может с настройкой Service или Deployment что-то не то =/

@kgubaev удалил и перенес все в новый namespace. Там все заработало в виде monitoring-influxdb.monitoring.svc

Не все конечно))) но графана бд от influxdb по dns подцепила)

Еще заметил багу раз через раз при выполенении kubectl exec -it busybox — bash вылетает по таймауту с “ read: connection reset by peer”

Konstantin
22.05.2018
04:11:00
Еще заметил багу раз через раз при выполенении kubectl exec -it busybox — bash вылетает по таймауту с “ read: connection reset by peer”
Под не перезапускается циклически? Он может запускаться, и, если не находит другие поды, завершаться с ошибкой

Nick
22.05.2018
04:28:32
Вот не знаю. Вроде в дашборде перезагрузок нет. =/

Dmitriy
22.05.2018
04:45:50
kubectl get pods и посмотри колонку restarts

Всем привет

Google
Nick
22.05.2018
05:15:30
Да я понимаю. Два рестарта на 20-30 ошибок - не похоже что связано.

Если вдруг кто логи чата читает. Для помощь в разборках с DNS можно почитать вот такую доку https://kubernetes.io/docs/tasks/administer-cluster/dns-debugging-resolution/

Banschikov
22.05.2018
06:51:51
Добрый день! Наверное много раз уже данный вопрос поднимался в этом чате... Подскажите, чем мониторите кластер k8s ? Помимо prometheus operator, конечно

мылру как минимум в два раза дороже AWS. они там осоловеле
Иследования были проведены для РФ сегмента

Andor
22.05.2018
06:53:15
Некропостеры

Dmitrii <freehck>
22.05.2018
07:08:00
Вопрос. Изнутри контейнера не могу установить внешнего соединения никуда. Стоит calico. Pod контейнера в неймспейсе default. Куда смотреть, подскажите пожалуйста. В документации кубера сказано, что по умолчанию поды должны принимать любые входящие и мочь создавать любые исходящие соединения. Почему у меня это не так — очень любопытно. K8s кстати 1.10.
Разобрался. Оказывается, у меня Calico на слейвовых нодах не запустилась, а я не заметил. Не запустилась потому, что неверно определился внешний ip-адрес (использовался внутренний адрес vbox для связи с хост-машиной, а он у всех виртуалок одинаковый).

Dmitriy
22.05.2018
09:05:08
100% я не первый, но все же - что использовать в качестве ingress лоадбалансера (прокси) на своем железе?

Dmitriy
22.05.2018
09:13:18
Просто proxy_pass на нодепорт?

Stanislav
22.05.2018
09:13:32
Нет, nginx-ingress

ставить надо

Dmitriy
22.05.2018
09:14:16
Хм... Почему бы и не nginx, как простой proxy_pass... Попробую. Спасибо за мысль.

Dmitriy
22.05.2018
09:15:38
У меня внутри есть nginx, в котором есть кучка логики. Нет смысла городить огород из ingress и правил. Все уже внутри. По идее должно получиться нормально.

Andor
22.05.2018
09:15:56
очень прикольно читать про "простой proxy_pass" имея в соседней вкладке браузера открытый шаблон конфига nginx-ingress

Dmitriy
22.05.2018
09:16:13
Это для дева в офисе. Тут не критично использовать узкозаточенное.

Andor
22.05.2018
09:18:01
Что "это"?

Google
Konstantin
22.05.2018
09:22:16
я немного не понял причем тут ингресс. вопрос же про использование nginx в роли внешнего балансировщика при service.type=LoadBalancer, так ведь? просто ингресс это ингресс, а балансировщик он немного снаружи и к ингрессу непонятно каким боком

ну и да, насколько я помню использование в роли LoadBalancer своего nginx не предусмотрено, оно только с облаками дружит. но можно свой nginx поставить перед ингрессом для того чтобы не отваливался ингресс при смене айпишника. это наверняка можно провернуть

Dmitriy
22.05.2018
09:29:00
Вот я про свой Nginx и говорю в связке с NodePort. Должно помочь. В проде будет внешний LB.

Stanislav
22.05.2018
09:29:14
Кто знает как в Helm подсасывать переменные из bash, за исключением передавать их как аргументы? Чтото типа {{ env $ZALUPA }}

Valentin
22.05.2018
09:30:19
{{.Env.ZALUPA}} так вроде, но это неточно

Stanislav
22.05.2018
09:30:51
Valentin
22.05.2018
09:31:28
или так {{.Values.env.ZALUPA}}

Stanislav
22.05.2018
09:32:09
Ни то ни другое, ни env ни Env, не работает(

Vladimir
22.05.2018
09:32:28
или так {{.Values.env.ZALUPA}}
так он будит см из файла values.yaml

Konstantin
22.05.2018
09:32:28
Вот я про свой Nginx и говорю в связке с NodePort. Должно помочь. В проде будет внешний LB.
да, это годная тема. ну указать node port и его же в конфиге нгинкса. по идее этого достаточно

{{.Env.ZALUPA}} так вроде, но это неточно
не могу промолчать и не сказать что это не так чтобы правильно. лучше —set, ну или из файликов добавлять, тоже вполне удобно. а по теме нет, не использовал, не знаю

Valentin
22.05.2018
09:34:35
.Values.ContainerSpec.Env.ZALUPA

Stanislav
22.05.2018
09:38:40
.Values.ContainerSpec.Env.ZALUPA
Это, насколько я понимаю переменная внутри контейнера, а мне нужна переменная окружения откуда я запускаю helm install.

Valentin
22.05.2018
09:39:11
не думаю, что это возможно

Stanislav
22.05.2018
09:40:43
Печалька(

Подсказали такую штуку, юзал кто?

https://github.com/roboll/helmfile

Valentin
22.05.2018
09:44:37
учитывая, что переменные контейнера можно юзать в чарте, они разруливаются уже тиллером на сервере, а он ничего не знает об окружении клиента, где был запущен хелм.... ИМХО

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