Andrey
В cicd написать 2 шага... подготовка и установка. Зачем это в куб пихать?
хотел встроить в установку чарта nexus изменение доступов на mounting volume. Т.е. допустим предполагается частая установка на новом железе и чтобы развернуть полную среду нужно подготовить систему..
Andrey
Решение по ТРИЗ. Перейди в подсистему или надсистему для решения проблемы 🙌
Я ведь правильно понял что надсистема это нода-воркер на котором запущен раннер
Rainbow
Я ведь правильно понял что надсистема это нода-воркер на котором запущен раннер
Задача пойти что-то сделать на ноде... написать в шаге логику этого пойти и все. После этого будет helm install шаг и все.
Rainbow
cicd из коробки позволяет делать последовательные шаги в pipeline
Andrey
Ведь есть же решение программное, gitlab или helm или ещё что.. Или все так и зашивают ssh на верхний уровень?
Rainbow
можешь натолкнуть на статью по этому вопросу?
Я услышал только задачу ./prepare && helm install и все. Её можно закинуть cicd для удобства. Но смысл такой. Можно вместо bash скрипта использовать ansible или ещё что.
Rainbow
В gitlab тоже самое будет stages: - prepare - deploy prepare stage: prepare script: - ./prepare deploy: stage: deploy script: - helm install ...
Rainbow
ни хуков, ничего такого не нужно. работает как часы. С миграциями и другими штуками, которые нужно делать до деплоя.
Andrey
Я просто предположил что есть способ засунуть это всё в helm install, но видимо в этом нет смысла
Rainbow
От задачи зависит. Есть противоположный пример со статикой. Можно собирать nginx контейнер со статикой и его деплоить. Но я сейчас делаю init container, который выкачивает tar с s3 и запускает nginx на содержимое. Удобно.
Andrey
В gitlab тоже самое будет stages: - prepare - deploy prepare stage: prepare script: - ./prepare deploy: stage: deploy script: - helm install ...
А куда копать чтобы, скажем, на этапе stage: prepare запустить скрипт не на уровне gitlab ранера, а на уровне самого куба? Или это и есть задача для ансибла?
Rainbow
А куда копать чтобы, скажем, на этапе stage: prepare запустить скрипт не на уровне gitlab ранера, а на уровне самого куба? Или это и есть задача для ансибла?
- gitlab runner может запускаться внутри кластера - в CI можно делать kubectl create job && kubectl wait --for=condition=complete job/myjob
Andrey
- gitlab runner может запускаться внутри кластера - в CI можно делать kubectl create job && kubectl wait --for=condition=complete job/myjob
тупо gitlab-runner install на самой машине с кублетом? добавить тег system.. и обращаться когда нужно работать с системой.. я чет даж о таком не думал.. Или мой ход мыслей неверный?)
Rainbow
https://docs.gitlab.com/runner/install/kubernetes.html
Andrey
NAME READY STATUS RESTARTS AGE gitlab-ci-runner-0 1/1 Running 0 5h39m сам ранер у меня есть, отлично работает, делает сборку, собирает образы. Не могу понять как из него влиять на основную железку
Rainbow
🙈 вопрос же был как запустить в кубе. Я бы подключался по ssh и выполнял скрипт (ansible), если нужно менять что-то на хосте.
Andrey
🙈 вопрос же был как запустить в кубе. Я бы подключался по ssh и выполнял скрипт (ansible), если нужно менять что-то на хосте.
ну да, запустить установку в кубе, но при этом выполнить какие-то скрипты на уровне железки на котором стоит куб, а НЕ на уровне создаваемого пода. т.е. вариант с SSH сработает. Но разве нет уже существующего решения? Иначе придётся хранить пароли или сертификаты с доступами..
Rainbow
Их все равно хранить нужно, чтобы делать helm install, даже если это как-то через него делать.
Sergey
прочел как хенджоб - долго думал
Andrey
Их все равно хранить нужно, чтобы делать helm install, даже если это как-то через него делать.
вот этот вопрос меня тоже давно преследует.. Как helm работает на уровне куба? ведь раннер работает где-то внутри.. Или helm как раз цепляется к main хельму куба и там уже инсталит всё что нужно?
Andrey
что-то вроде kubectl port-forward до tiller и общается с ним по grpc
helm это из коробки делает? Есть какие-то доки?
Rainbow
tiller точно сервер с портом, он не экспозит его наружу. port-forward единственный способ с ним пообщаться, который я знаю 😬
Aleksey
Использую связку kubernetes+rancher. Столкнулся со странной генерацией конфигов в ingress-контроллере. Если создаю ingress-контроллер из yaml с указанием в атрибуте serviceName имени pod'а - ингресс линкует pod "вникуда". При ручном создании из GUI Rancher линковка с подом происходит, однако в serviceName указана какая-то херня вида ingress-658e3c496dad4d178b61af4657747fbf... Подскажите пожалуйста где почитать откуда эта херня появляется и почему не работает линковка при использовании serviceName: $PODNAME ?
Aleksey
потому что serviceName: $SERVICE_NAME и никак больше
В serviceName указан реальный pod, а не переменная. Здесь её указал для простоты восприятия
Rainbow
а должен быть указан kind: Service name: $SERVICE_NAME
Rainbow
а не под
Aleksey
а должен быть указан kind: Service name: $SERVICE_NAME
Хммм... Сейчас проверю. Спасибо!
Rainbow
который (service) выбирает поды по selector
Grigorii
А как в helm можно вывести инфу после деплоя? Например сгенерированный пароль. Был где-то пример, не могу найти
Grigorii
helm notes
👍🏻
Aleksey
а должен быть указан kind: Service name: $SERVICE_NAME
Очень странно, но почему-то в kubectl svc я не вижу сервиса, на который ссылается serviceName в манифесте ingress-controller'а...
Aleksey
Лучше открыть доку и прочитать про deployment - service - ingress
Понял. В любом случае огромное спасибо!
Rainbow
Я могу ответить, только это будет жалкое подобие доки. Лучше по keywords найти доку.
ᴅⁱᵐⁱᴅʳ0ˡ
всем
ᴅⁱᵐⁱᴅʳ0ˡ
привет
ᴅⁱᵐⁱᴅʳ0ˡ
подскажите пожалуйста как сменить mtu на calico ?
Alex
В configmap нет поля mtu?
Pavel
Друзья, а подскажите как в сервис в кубернетесе в запросе от прокси передать заголовок x-forwarded-for ?
Pavel
У меня передается адрес прокси, а не клиента =\
Pavel
ingress-nginx, baremetal k8s, servicetype ClusterIP
Dmitrii
Я услышал только задачу ./prepare && helm install и все. Её можно закинуть cicd для удобства. Но смысл такой. Можно вместо bash скрипта использовать ansible или ещё что.
а почему не так: https://github.com/helm/helm/blob/master/docs/charts_hooks.md pre-install: Executes after templates are rendered, but before any resources are created in Kubernetes.
Rainbow
И что будет на вебхуке? дергать ci?
Dmitrii
И что будет на вебхуке? дергать ci?
не обращай внимания, это я сам с собой )) нажал ответить на коммент и ушел, спустя 4 часа забыл о чем была речь, прочитал только твое собщение ... и подумал, если нужен prepare для чарта, то логично его делать в чарте
Pavel
Аннотацией? А сейчас что происходит ?
Приходит IP-адрес прокси, а не клиента в запросе. Я пробовал добавлять такую в ингресс рул "nginx.ingress.kubernetes.io/cors-allow-headers: "X-Forwarded-For""
Haber
Всем привет, посоветуйте, плиз, железо для мастер нод. Пиковая количество http запросов в секунду - около 5 тыс.
George
И не фурыкает все равно?
Haber
без
George
Ингресс там же ?
Haber
да
Haber
интересует сколько нужно ядер, ram и hdd
George
Без тестирования сложно сказать
George
Ну, минимум 8 ядер, 8 гиб, ссд диски
George
Нод трёх должно хватить
Haber
HDD не сильно много нужно?
George
От 60 гиб, много под кэш докера может уйти
Viktor
Hi. В helm хочу передать несколько значений pgpool.users для PostDock. Синтаксис предполагает запись типа: user:password[,user:password[...]] Как мне передать параметр через --set ? --set pgpool.users=a:b,foo:bar Error: failed parsing --set data: key "foo:bar" has no value
Pavel
И не фурыкает все равно?
Неа, будто nginx ingress свои значения подставляет и вставляет туда адрес прокси, а не реального клиента
Pavel
Причем в логах прокси видим, что передаются необходимые заголовки, но к приложению не доходят
Pavel
Начал думать на ингресс, и решил спросить гуру)
George
не нужно ingress ставить на master ноды
не "не нужно", а "не рекомендуется"
George
но в принципе, если нет кучи железок... то и вариантов не будет
Rainbow
30к rps может вывести nginx на одном ядре со статикой без https. Такое себе сразу говорить про 8ядер/8gb
George
и баре метал