Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Битрикс в Кубернетес

Битрикс в Кубернетес

Костыли, подпорки и Битрикс в Kubernetes

Sysadminka

April 18, 2019
Tweet

More Decks by Sysadminka

Other Decks in Technology

Transcript

  1. Костыли, подпорки и Битрикс в Kubernetes Зачем это нужно и

    как мы сделали это работающим Вадим Исаканов, инженер Southbridge.io [email protected] twitter.com/vadimhouse t.me/vadimisakanov
  2. Что такое Kubernetes вообще? Kubernetes - платформа для автоматизированного -

    развертывания - масштабирования - управления приложениями в контейнерах. Лежит в основе инфраструктуры Google.
  3. Позиция компании Битрикс Мы не используем Kubernetes, т.к. он базируется

    на Docker, который является очень спорной технологией. А. Сербул, 1С-Битрикс.
  4. В чем проблемы с Битрикс в Kubernetes? - готовые docker

    образы для Битрикс не подойдут - код правится из админ-панели - нужно решать вопрос с деплоем (не тривиально)
  5. Что мы сделали - докеризовали Битрикс - "разрезали" Битрикс на

    контейнеры, каждый из которых выполняет минимум функций - добились отказоустойчивости - добились stateless состояния контейнеров - решили проблему с обновлением Битрикс в Kubernetes - все функции Битрикс продолжили работать, надо же (почти все и почти работать) - отработали деплой в Kubernetes и откат между версиями
  6. Что мы не сделали - не разрезали весь код Битрикс

    на микросервисы - не положили базу в Kubernetes (хотя пришлось) - не добились полного stateless - не добились полной прозрачности для пользователей (архитектура Битрикс не позволит без изменения кода) - не решили задачу развертывания сайта в Kubernetes с нуля
  7. Кэш Битрикс memcached - наше все! $ helm install stable/memcached

    --name cache bitrix/.settings_extra.php - cache settings
  8. Готовим Docker image FROM centosadmin/bitrixenv:1.0 WORKDIR /app ENV HOME /app

    COPY . . ENV GIT_COMMIT_SHA $CI_COMMIT_SHA ENV GIT_REPO $CI_PROJECT_URL RUN mkdir -p /app/tmp && \ mkdir -p /app/bitrix/tmp && \ chown apache:apache /app/bitrix && \ chown -R apache:apache /app/tmp /app/bitrix/tmp EXPOSE 80 CMD ["./bin/docker-entrypoint.sh"]
  9. Helm чарт Для развертки проекта используем Helm - пакетный менеджер

    для Kubernetes. $ helm upgrade --install project .helm --set image=registrygitlab.local/k8s/bitrix -f .helm/values.yaml --wait --timeout 300 --debug --tiller-namespace=production
  10. Что хорошего получаем - Пароли в секретах (не видны всем

    подряд) - Бесшовный деплой - Довольно удобно делать дополнительные окружения (для разработки, етс)