Andor
у нас было 40 ядер и 256гб памяти и симптомы ровно те же были
Max
на конфе цепанул рецепт в виде нарезания жирной ноды на виртуалке kvm'ом
Andor
это как раз наши красавчики придумали костылик
Max
Andor
я правда там уже не работаю
Andor
(не авито)
Max
но мы решили по пути удешевения железок и отказа от дополнительных слоев для поддержки
Andor
верным путём пошли :)
Max
ну и это только для тестовой среды актуально, ибо в проде ограниченное количество неймспейсов. Это только на тестовой среде у нас девы и тестеры деплоят стопятьсот окружений и всем нужно их придержать на недельку-другую
AB 🇨🇾 🍉
ummutable infrastructure рулит для такого
Max
но с дешевым мжелезом на тестовой среде пришли падения нод, с которыми я собсно и пришел в этот канал)
Maksim
Maksim
Ну 2 из 3х у вас падение на свапе
Maksim
Так что ищет ошибки памяти
Max
Max
Так что ищет ошибки памяти
ага, только что извлекли ноду и запустили мемтест, завтра будет. Конечно красиво кубер перераспределил пропавшие поды на другие ноды..)
Maksim
А вы его тюнили? или используете дефолтовые значения?
Max
Maksim
скорость переспределения нод
Max
нет, дефолтное все
Anton
1. Запускаю вот такой деплоймент и попадаю в sh alpine:
$ kubectl run sh --image=alpine -it --command -- sh
2. Выхожу (exit) и вижу такую подсказку:
Session ended, resume using 'kubectl attach sh-69f846b4b7-8cxr5 -c sh -i -t' command when the pod is running
3. Выполняю подсказку, и действительно опять попадаю в sh alpine.
4. Опять выхожу (exit) и опять вижу ту же подсказку.
5. Выполняю подсказку, но второй раз вот такое:
error: unable to upgrade connection: container sh not found in pod sh-69f846b4b7-8cxr5_default
и
$ kubectl get po
NAME READY STATUS RESTARTS AGE
sh-69f846b4b7-8cxr5 0/1 Completed 1 25s
Что такое Completed и почему первый раз я смог вернуться, а второй — нет?
AB 🇨🇾 🍉
Есть несколько интерфейсов:
eth0 Link encap:Ethernet HWaddr 36:f5:64:24:c5:a7
inet addr:202.154.192.122 Bcast:207.154.207.255 Mask:255.255.240.0
eth1 Link encap:Ethernet HWaddr 3e:03:d1:5c:2c:96
inet addr:10.135.78.185 Bcast:10.135.255.255 Mask:255.255.0.0
КАК повесить nginx на public ip?
Вот сервис
...Type: LoadBalancer
IP: 10.106.169.46
Port: <unset> 443/TCP
TargetPort: 443/TCP
NodePort: <unset> 32481/TCP
Endpoints: 192.168.217.249:443,192.168.82.166:443
Session Affinity: None
External Traffic Policy: Cluster
Events: <none>
...
экспорт
...
ports:
- nodePort: 32481
port: 443
protocol: TCP
targetPort: 443
selector:
io.kompose.service: front
sessionAffinity: None
type: LoadBalancer
status:
...
MOXHATOE
А что, ExternalIP не прокатило?
G72K
AB 🇨🇾 🍉
заработало, только не могу понять, почему с таким конфигом и двумя nginx (реплика: 2)
ports:
- name: http
port: 80
targetPort: 80
protocol: TCP
- name: https
nodePort: 32481
port: 443
protocol: TCP
targetPort: 443
selector:
io.kompose.service: front
sessionAffinity: None
externalIPs:
- y.y.y.y
- x.x.x.x
- z.z.z.z
type: LoadBalancer
делаю
curl y.y.y.y
и убиваю одну из под, запросы виснут, на вторую поду не идут.... why?
почему LoadBalancer не отрабатывает?
MOXHATOE
Так а лоадбалансер есть вообще?
Maksim
Потому что фигня подходит тодько длч малого окркжения
Anonymous
New Year Sale! Every Programming Course is 93% off!
https://reactdom.com/sale
Anonymous
helm template | istioctl | kubectl apply :)
Anonymous
Anatoliy
Maksim
complited значит команда в контейнеры выполнилась и вернула 0
Maksim
-)
Anatoliy
Nikita
Ребят, а кто как решает HA для докер регистри?
Denis
Сейчас ислледуем Ceph для PV и видимо будем запускать registry в кубе
Andor
для бутстрапа режистри надо будет запустить режистри
Denis
Ну это в ситуации если нет других реджистри
Denis
Ну делайте резервную копию на другой сервак
Denis
в случае факапа - просто другой инстанс за DNS
Anatoliy
G72K
Еще поищу истрию и объеденю под тагом #helmговно для будущих поколений
G72K
Никого Helm не бесит? :)
G72K
Оно сегодня при удалении релиза удалило то, что в релиз не входило :)
G72K
Любой чарт может перезаписать любой template , в итоге никогда не знаешь что твой собственный template тебе вернет. Оправдание этому в доке какое то детское
G72K
Ну package manager должен уж как то гарантировать корректность
G72K
Еще эта идея публиковать тарболы в стиле 90х, брр
G72K
Еще из неподтвержденых: похоже что если в чарте есть namespace, и оно не совпадает с namespace релиза, то хелм его конечно поставит, но вот удалить забудет :))
G72K
Helm.sh/post-upgrade хук: Если это job то следующий апгрейд релиза провалится, так как оно не сможет его создать.
G72K
Еще этот tiller, нафига? Все равно все пишет в configmap, а атомарность create позволяет делать лок на конекретный редиз, так что тиллер вполне себе мог бы жить в клиенте
G72K
Просто кому то хотелось в grpc поиграться :)
G72K
нет, это кривой kubectl apply с блэкджеком
G72K
никакой транзакционности и роллбэков. может посчитать что изменений нет,хотя если сравнить оъект в helm get release и в kubectl get XXX -o yaml они будут разными
G72K
все подвязано на labels и selectors ,от этого ты можешь установить новый релиз, удалить его, а оно с собой утянит что-то что было до этого. просто потому что labels совпали :)
G72K
базовые вещи поломаны: релиз может "усыновить" ресурсы которые уже были, в итоге сам релиз фэйлится и пользователь скажем решает его удалить. оно удаляет и то, что реально не было установлено :) или скажем оно забывает про любые ресурсы, в которых явно прописан namespace. ну или самый ад: upgrade after failure, оно делает совсем не то, что кажется - там внутри идет генерация патча на каждый апгрейд, при этом база для патча - последний релиз, неважно зафэйлин он был или нет. в итоге скажем в релизе изменили A, B при этом B сломало релиз, пользователь делает B' и ожидает получить в кубе и A и B', а получает только B' :)
G72K
зато rudder плагины пилят и другие шашечки, проблемы выше даже, как bug не помечают. для них bug это когда panic в их коде :)
Anatoliy
тьфу, я думал спам пришел)
Denis
Надо какой то Wiki уже сделать ))
Anatoliy
Denis
Anton
ну и ссылку с основного сайта "Наши друзья: helm.sh.it"
Serega
Anton
𝚔𝚟𝚊𝚙𝚜
Всем привет, а я тут продолжаю всякими непотребствами заниматься:
https://github.com/kvaps/kube-lustre/
Anonymous
Всем привет. Прошу пнуть в нужную сторону, не знаю с чего начать и что читать в сторону kubernetes. Есть 4 тачки на которых настроен к8с 1 мастер и 3 слейва (Bare Metal). Всё функционирует. Говорил с разрабами, они хотят, что бы всё у них поднималось автоматически (SaltStack, Ansible и т.п.). Может есть у кого, примеры/статейки/инструкции как собирать кластер на к8с для продакшн целей.
Всем спасибо
Andor
https://puppet.com/blog/new-supported-puppet-modules-make-kubernetes-deployments-easier свежак
Serega
>> Говорил с разрабами, они хотят, что бы всё у них поднималось автоматически (SaltStack, Ansible и т.п.)
это как?
Anonymous
возможно, вы хотели написать “боли” вместо “соли”? :)
Anonymous
админской
Anonymous
Serega
похоже автор вообще не знает что ему надо
Serega
"всё" это что?