
Andrey
25.07.2018
13:48:54

Anton
25.07.2018
13:49:28
history смотришь и откатываешь к релизу

Алексей
25.07.2018
13:49:37

Andrey
25.07.2018
13:49:58
вот и я не вижу, поэтому и спрашиваю

Google

Anton
25.07.2018
13:50:19
потому что действия делает к8с, а не хелм

Алексей
25.07.2018
13:50:20

Anton
25.07.2018
13:50:29
хелм сделал патч, дальше к8с работает

Алексей
25.07.2018
13:50:40

Andrey
25.07.2018
13:51:46
остановить - это просто. удалить ресурсы связанные с релизом, из кубера
я пробовал helm delete, но после него нельзя делать helm upgrade

Anton
25.07.2018
13:52:55
helm delete --help
helm delete --purge

Алексей
25.07.2018
13:53:30

Andrey
25.07.2018
13:53:46
хм. может помочь, спасибо

Sergei
25.07.2018
13:53:55
из удалённого (но не пурженного) релиза можно получить json с values

Anton
25.07.2018
13:53:59
вообще purge это крайние случаи. удалять не нужно. ведь даже failed первый релиз можно обновить с helm upgrade --install --force

Sergei
25.07.2018
13:54:03
и развернуть с ним новый релиз ?

Evgeny
25.07.2018
13:54:24

Google

Andrey
25.07.2018
13:55:21

Evgeny
25.07.2018
13:55:59

Алексей
25.07.2018
13:56:29

Andrey
25.07.2018
13:56:39
deleted, конечно же
вроде —install —force сработал
мне просто надо, чтоб upgrade из удалённого релиза values взял

Михаил
25.07.2018
13:58:39

Andrey
25.07.2018
14:00:59
мда, похоже, не берёт

Sergei
25.07.2018
14:03:40
так а 'helm get values <release_name>' не подходит?

Andrey
25.07.2018
14:05:22
да подходит, просто тогда надо будет эти values сохранять куда-то перед переустановкой
задача вроде простая, а инструментов нет
надо остановить релиз, и поднять новую версию с одной изменённой переменной
а остальные при этом взять из старого
если б останавливать релиз не надо было, я бы просто сделал upgrade —reuse-values —set var=value
upgrade —install —force —reuse-values не берёт values из удалённого релиза

Kirill
25.07.2018
14:12:19

Anton
25.07.2018
14:20:28
можно ли сделать имя пода фиксированным? (если deployment)

Anton
25.07.2018
14:21:46
после наката апгрейда скейлить вверх

Andrey
25.07.2018
14:22:24
helm scale? нет такой команды

Google

Anton
25.07.2018
14:22:41
kubectl =)

Andrey
25.07.2018
14:23:12
это тогда надо знать содержимое чарта

Иван
25.07.2018
14:23:12
А нужен ли helm?

Andrey
25.07.2018
14:23:30
для многокомпонетного релиза - да
иначе я запарюсь пайплайны для выката делать

Anton
25.07.2018
14:24:08
что я все за вас думаю то

Andrey
25.07.2018
14:24:51
да вы думаете не за меня, а за мной. Такой вариант тоже не подходит, потому что там не только deployment-ы
я перед тем как в чат прийти, кучу вариантов перепробовал

Roman
25.07.2018
14:26:18
Ребятки, кто-нибудь пробововал NodePort для нод на AWS?

Vladimir
25.07.2018
14:29:31

Andrey
25.07.2018
14:35:05
остановился на
# пробуем
helm upgrade --tls --dry-run --reuse-values --set var=newvalue release package
# сохраняем текущий номер ревизии
helm history --tls -o yaml --max 1 release | grep revision: | awk '{print $2}' > currentreleaserevision
# сохраняем текущую конфигурацию
helm get values --tls release > currentreleasevalues.yaml
# удаляем
helm delete --tls --no-hooks release
# ставим новую версию со старой конфигурацией, с подмешанной новой переменной
helm upgrade --tls --wait --install --force --values currentreleasevalues.yaml --set var=newvalue release) package
# если свались, делаем откат
helm rollback --tls --wait --no-hooks release `cat currentreleaserevision`

Dmytro
25.07.2018
14:46:11

Kirill
25.07.2018
14:52:21

Dmytro
25.07.2018
14:52:55
это на 18.04?

Kirill
25.07.2018
14:55:11
centos

Dmytro
25.07.2018
15:01:13
ага, т.е. тут 2 разных случая смешано в чате
я не уверен что kube-dns должен уметь себя резолвить, зачем это может быть нужно?

Kirill
25.07.2018
15:15:09

Alex Milushev
25.07.2018
15:20:06

Google

Alex Milushev
25.07.2018
15:20:13
простите, эмоции

Dmytro
25.07.2018
15:24:34
ни один из них в другой по хостнейм не должен ходить, тут что-то не так

Vadim
25.07.2018
15:26:52
>Our work on Helm Lua is still very much in its proof-of-concept stage, but we’re looking at a syntax that would be at once familiar and flexible
ахахаххаха
ну хоть тиллер вырезали

Dmytro
25.07.2018
15:28:20
да ладно же, я обеими руками за Lua
в нжинксе тоже Lua, не нужно плодить сущности

Kirill
25.07.2018
15:29:09
а я что-то говорил о хостнейм? :)
На определенном пороге (около 20 под запущено) увидел что под с кубе-днс начала рестартовать часто.
Полез в логи,
dnsmaq выдавал
Maximum number of concurrent DNS queries reached (max: 150)
В этот момент sidecar ругался что dnsmasq не отвечает, поєтому ему страшно и он ресетит сервис
увеличение этого порога с 150 до 300 не помогло

Vadim
25.07.2018
15:30:02

Dmytro
25.07.2018
15:30:15

Kirill
25.07.2018
15:31:19
рабочего какого-то решения данной проблемы не увидел, обновлять кубер не хотелось, увидел что один из вариантов - замена на коре-днс. и типа на него кубер перешел в новых версиях (или переходит?)

Vadim
25.07.2018
15:31:20

Dmytro
25.07.2018
15:31:30
ну и опять же, лучше взять стандартный язык а не изобретать свой как ksonnet
нет, это аргумент о стандартизации

Kirill
25.07.2018
15:31:42

Dmytro
25.07.2018
15:33:23

Kirill
25.07.2018
15:34:17
цпу лимиты были дефолтные

Dmytro
25.07.2018
15:34:22
если не помогает убрать или поднять лимиты - нужно увеличивать количество реплик. Но прежде стоит посмотреть на логки dnsmasq и ndots у подов

Google

Kirill
25.07.2018
15:34:49
первое решение которое сделал - увеличил колличество под с кубе-днс до 3х

Dmytro
25.07.2018
15:35:00
они достаточно низкие, если у вас приложения не кешируют днс на какое-то время а фигачат кучу днс запросов - нужно увличить

Kirill
25.07.2018
15:35:12
падений стало меньше, но падали поочереди все поды с кубе-днс ;)

Dmytro
25.07.2018
15:35:23
например, у соседнй команды было пхп приложение которое на каждую страницу ходило до 400 раз в мемкеш по днс
они там наебались...

Kirill
25.07.2018
15:35:57
да, учту при дальнейших вопросах

Evgeny
25.07.2018
15:37:21

Dmytro
25.07.2018
15:38:04
если вкратце, то по дефолту обычно стоит ndots:5 и на каждый днс резолв летит вместо одного запроса пачка вида <dns>.svc.local, т.е. все внешние ресурсы сначала внутри кластера
плюс еще летят всегда ipv4 и ipv6 резолвы
все это можно увидеть в логах dnsmasq если их включить
т.е. на один днс резолв от приложения выходит до 10 (по моим прикидкам) днс запросов


Kirill
25.07.2018
15:44:55
Да, видел, как вариант снижения нагрузки - прописывание полного адреса сервиса вплодь до точки на конце.
Не помогло, но на всякий пожарный теперь делаю так

Evgeny
25.07.2018
15:45:03

Dmytro
25.07.2018
15:47:21
квота одинаковая но вот сколько из квоты использовано одним подом и сколько другим?

Evgeny
25.07.2018
15:47:34
по логам получается сначала dnsmasq отваливается
I0725 15:08:54.586875 1 nanny.go:116] dnsmasq[18]: using nameserver 127.0.0.1#10053 for domain cluster.local
I0725 15:08:54.586885 1 nanny.go:116] dnsmasq[18]: using nameserver 127.0.0.53#53
I0725 15:08:54.586893 1 nanny.go:116] dnsmasq[18]: read /etc/hosts - 7 addresses
I0725 15:12:48.143322 1 nanny.go:116] dnsmasq[18]: Maximum number of concurrent DNS queries reached (max: 150)
I0725 15:12:58.154825 1 nanny.go:116] dnsmasq[18]: Maximum number of concurrent DNS queries reached (max: 150)

Dmytro
25.07.2018
15:47:58
я бы еще пробовал все-таки включить логи dnsmasq посмотреть что там приходит то

Evgeny
25.07.2018
15:49:12
потом sidecar перестает метрики получать
I0725 15:08:59.144350 1 dnsprobe.go:75] Starting dnsProbe {Label:kubedns Server:127.0.0.1:10053 Name:kubernetes.default.svc.cluster.local. Interval:5s Type:1}
I0725 15:08:59.144397 1 dnsprobe.go:75] Starting dnsProbe {Label:dnsmasq Server:127.0.0.1:53 Name:kubernetes.default.svc.cluster.local. Interval:5s Type:1}
W0725 15:12:51.207223 1 server.go:64] Error getting metrics from dnsmasq: read udp 127.0.0.1:39414->127.0.0.1:53: i/o timeout
W0725 15:13:05.150423 1 server.go:64] Error getting metrics from dnsmasq: read udp 127.0.0.1:44531->127.0.0.1:53: i/o timeout