@kubernetes_ru

Страница 889 из 958
Alexey
12.10.2018
06:51:44
Интересный поворот, как раз нашим жаловался чего у них жс одним блобом. Классика "сделай проще, надёжней работать будет" оказалась актуальной :) как это решают вне куба?
это проблема контейнеров в целом и js чанков, много раз натыкался. Файлопомойка/js логика или вот новый путь хочу попробовать, чероз proxy_cache

Andor
12.10.2018
06:51:54
у него видимо не по хешу

Alexey
12.10.2018
06:52:14
у меня по хешу....

Andor
12.10.2018
06:52:21
proxy_cache - не "новый путь", а костыль, который может взорваться в непредсказуемый момент

Google
Andor
12.10.2018
06:52:35
ну загружай с контейнера в CDN например

Alexey
12.10.2018
06:53:01
proxy_cache - не "новый путь", а костыль, который может взорваться в непредсказуемый момент
на этот случай останется js логика. Которая будет покрывать редкие взрывы и ладно.

Задача просто пережить 1-2 часа без явного старого js. proxy_cache решит.

Andor
12.10.2018
06:54:29
да сложи на cdn

Alexey
12.10.2018
06:54:32
ну загружай с контейнера в CDN например
с CDN таже проблема что и с assets помойками. Это нужно следить, выгребать и тп.

Andor
12.10.2018
06:54:42
или забить? :)

Alexey
12.10.2018
06:55:14
ну, хочется декларативности, как yml. apply а остальное делает кто-то другой. proxy_cache сам чистит.

так то понятно, что всегда забивали и можно продолжать.

Andor
12.10.2018
06:57:35
не ну если ты этот proxy_cache будешь предсказуемо заполнять и вычищать, то можно наверное сделать более-менее нормально

(или нет)

Let Eat
12.10.2018
06:58:16
это проблема контейнеров в целом и js чанков, много раз натыкался. Файлопомойка/js логика или вот новый путь хочу попробовать, чероз proxy_cache
В порядке бреда:каждая версия приложения деплоит свой уникальный ассет (свой deployment, ingress, service) + один общий ingress , который будет перезаписывается каждым следующим деплоем. Эдакий green/blue но только со всеми цветами радуги и старые версии долго не удаляем

Google
Andor
12.10.2018
07:00:20
ключевое слово: предсказуемо

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

и может случиться так что часть уже отвалилась, а часть ещё лежит в кеше

Alexey
12.10.2018
07:01:12
вероятность того, что ни один пользователь за 24 часа не загрузит второй чанк крайне мала. А отвалится сначала основной.

Let Eat
12.10.2018
07:02:20
это проблема контейнеров в целом и js чанков, много раз натыкался. Файлопомойка/js логика или вот новый путь хочу попробовать, чероз proxy_cache
Вторая мысль: можно все ассеты пихать в клиента по http2 server push, оно в фоне подзагрузится и осядет в Кеше браузера

Let Eat
12.10.2018
07:04:38
это service worker задача, который у js
Я не совсем в теме, но что это меняет? Оно в обход кэша браузера код загружает?

Alexey
12.10.2018
07:05:08
*заранее.

и сказать, что это можно взять даже в offline и будет ок.

Andor
12.10.2018
07:05:54
смотри карочи, у тебя index.html грузится с приложения бекенда, а статика с соседних контейнеров, так?

Alexey
12.10.2018
07:06:24
нет, я сейчас кладу assets рядом с беком там, где всплывает такой кейс. SSR и тп.

Let Eat
12.10.2018
07:06:26
Ну я про то, что ваш nginx может тоже в кеш браузера положить что хочет заранее , т.е. задачу можно решить не привлекая жс программистов воообще

Alexey
12.10.2018
07:07:08
ну он отдаёт статику в надежде, что nginx сверху разрулит нагрузку эту.

Andor
12.10.2018
07:07:31
что такое "кладу ассетс рядом с беком"?

Vadim
12.10.2018
07:08:33
на истио в чистом k8s это проще делать, ну и велосипеды конечно же

Alexey
12.10.2018
07:08:36
что такое "кладу ассетс рядом с беком"?
что бек http сервис и может раздать статику немного, пока nginx не начнет кешить

Google
Andor
12.10.2018
07:09:17
а, ты просто хочешь добавить кеша для ассетов, а ориджин этих ассетов всё равно будет на том же самом поде бекенда?

тогда норм будет

Andor
12.10.2018
07:09:53
s/если/когда/

Vadim
12.10.2018
07:10:45
http://brandon.dimcheff.com/2018/02/rainbow-deploys-with-kubernetes/ если совсем кратко

Anton
12.10.2018
07:10:48
блять, мимо

Georgy
12.10.2018
07:10:53
лол

Alexey
12.10.2018
07:12:56
тогда норм будет
я понимаю и кажется это простое решение и должен быть image готовый под это, про это и спрашивал изначально.

можно server snipet (вроде) написать на ingress кажется и проксить самого себя. Но хотелось бы volume монтировать под это.

Andor
12.10.2018
07:14:18
можно кастом шаблон для ингресса всегда сделать

Let Eat
12.10.2018
07:14:34
http://brandon.dimcheff.com/2018/02/rainbow-deploys-with-kubernetes/ если совсем кратко
Ха , и правда: As a bonus, since the first six characters of a git sha are also a valid hex color, the name still makes sense. :) Можно красивую (бесполезную) визуализацию сделать со спектром и интенсивностью от времени деплоя

Andor
12.10.2018
07:14:51
https://github.com/kubernetes/ingress-nginx/issues/739 вон тут предлагают так и сделать

и цвет прямо в графану выводить!

@alexesDev https://stackoverflow.com/questions/47135256/kubernetes-nginx-ingress-controller-caching-static-assets

Alexey
12.10.2018
07:16:29
https://github.com/kubernetes/ingress-nginx/issues/739 вон тут предлагают так и сделать
о, я думал как бы volume подцепить, а можно redis. Не знал. Звучит круто, буду копать.

Andor
12.10.2018
07:16:31
кажется не очень сложно

Let Eat
12.10.2018
07:18:55
о, я думал как бы volume подцепить, а можно redis. Не знал. Звучит круто, буду копать.
А что с http2 server push? :) Выглядит проще, работает даже лучше

Google
Let Eat
12.10.2018
07:19:15
(в теории)

Alexey
12.10.2018
07:20:22
нужно тестить, до конца не понимаю

Let Eat
12.10.2018
07:23:42
При отдаче страницы по http2 сервер передаст браузеру и другие ассеты , они осядут в кэше и когда понадобятся к серверу никто не пойдет

Andor
12.10.2018
07:24:17
угу, только бекенд должен как-то сообщить что надо пушить в клиента

Let Eat
12.10.2018
07:25:34
Прям в ингресс контроллере можно, значение взять из аннотаций

Andor
12.10.2018
07:26:05
а он откуда узнает?

ну смысле оно же может быть разное для разных урлов

Let Eat
12.10.2018
07:26:25
(Имхо nginx не поддерживает http2 до бекендов , так что вряд ли получится этим с бекенда рулить)

Andor
12.10.2018
07:26:31
ваще не очень понимаю как этот пуш работает

Let Eat
12.10.2018
07:27:12
ну смысле оно же может быть разное для разных урлов
через config-snippet аннлтацию из Ingress приложения

Andor
12.10.2018
07:28:06
у тебя в одном урле один набор ассетов, а в другом - другой

а потом новая версия приложения вышла и всё поменялось

ты каждый раз будешь ингресс перенастраивать?

Let Eat
12.10.2018
07:29:19
ты каждый раз будешь ингресс перенастраивать?
Ну приложение деплоит свой Ingress, там и прописывает

(ingress != Ingress controller если вдруг о разных вещах говорим)

https://nginx.org/en/docs/http/ngx_http_v2_module.html#http2_push

Andor
12.10.2018
07:30:16
как всё было просто во времена сайтиков с пхп

@rossmohax разработчик не хочет ничего знать, он хочет раздеплоить новую версию контейнера а так придётся брать чувака который шарит как настроить ингрессы

Let Eat
12.10.2018
07:31:39
Они и не должен ничего знать. CI пайплайн сам все может сделать

Понять что это деплой с ассетами, заглянуть в контейнер взять имена, прописать в ingress аннотации

Google
Andor
12.10.2018
07:32:53
ну технически это конечно возможно

чтобы всё само

да, ты прав, вполне норм тема

пойду в прод хуярить :)

Let Eat
12.10.2018
07:34:06
Можно попросить разработчиков при билде оставлять артефакт с именами ассеты. Можно http2_push_preload заюзать тогда nginx вообще все сам

(но тогда это будет работать только на первом уровне, т.е. со страницы index.html)

А не, оно же через header (https://blog.cloudflare.com/http-2-server-push-with-multiple-assets-per-link-header/) вообще отлично - nginx с ассетами сам может сказать что предзагрузить

Т.е. можно рулить с бекенда

Т.е. CI пайплайн даже трогать не надо

Project Daemon
12.10.2018
07:45:24
PXE boot + CoreOS . Можно посмотреть на typhoon как сделано
а что вы думаете по поводу Kubespray?

Sergey
12.10.2018
07:48:16
Бодрый день, впрос такой - а python использует cgroups для определения лимитов, когда бегает в k8s?

сталкивался кто?

Let Eat
12.10.2018
07:48:54
Написал, чем пользуюсь :) kubespray не пользуюсь , для меня показательно, что у них до недавнего времени тейнты на нодах не работали, потому что они scheduler запускали со своим древним конфигом зачем-то. С другой стороны баги есть везде и кто знает сколько всего не работает в моей наколенной поделке? :)

Бодрый день, впрос такой - а python использует cgroups для определения лимитов, когда бегает в k8s?
О каких лимитах речь? Вроде только JVM и то последний умеет из cgroups информацию брать для дефолтов

Banschikov
12.10.2018
07:50:59
Народ, кто нибуть юзал вот этот мануал, для починки Helm? https://medium.com/@valercara/helm-stuck-in-pending-update-and-how-to-fix-it-13c4b2eaf9f7

Sergey
12.10.2018
07:52:20
О каких лимитах речь? Вроде только JVM и то последний умеет из cgroups информацию брать для дефолтов
Как я понимаю по дефолту под показывает информацию о ноде на которой бегает (грубо говоря: free -h покажет данные ноды)

Вообщем бегают у меня с 10 jyputer'ов, и я не могу сообразить - понимает ли питон лимиты пода в котором бегает

если он cgroups не поддерживает - то получается что не понимает, и радостно жрет оперативку как не в себя

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