Автор: Чи Сяодун, технический директор компании Spider Point Commercial Network Services Co., Ltd., занимается разработкой и проектированием программного обеспечения более 10 лет, любит изучать различные новые технологии и делиться ими. Источник: Эта статья была составлена Чи Сяодун, лектором на встрече на станции Гуанчжоу 25 ноября, и составлена на основе одноименного контента, которым поделился Учитель Чи на мероприятии.
Знакомство с платформой компании
Компания Spider Point была основана в апреле 2016 года и стремится развивать общественный бизнес в области электронной коммерции (решая проблему доставки на последние 3 километра). Первоначально мы добились развития бизнеса электронной коммерции в сообществе и локализованного распространения через самостоятельно построенные каналы прямых продаж, самостоятельно построенные склады, самостоятельно построенные крупные общественные склады и использование франчайзинговых складов. В лучшем случае у него есть филиалы и дочерние компании в каждой провинции по всей стране, провинциальные склады в каждой провинции и большие склады в крупных городах на севере и юге.
Позже, с упадком индустрии электронной коммерции, компания трансформировалась в комплексное цифровое корпоративное решение (в направлении промышленного Интернета). В целом развитие выглядит следующим образом:
Общие сведения о платформе
Компания создала внутреннее облако, купив серверы и разместив его в компьютерном зале IDC, а для управления виртуальными машинами использовала технологию виртуализации VMware. По мере роста бизнеса проекты переходят от единой архитектуры к распределенной архитектуре, а также увеличивается количество виртуальных машин, что создает множество проблем для управления разработкой, эксплуатацией и обслуживанием. проблемы с базовой архитектурой компании.
- Бизнес быстро развивается, новых виртуальных хостов нет, а среда сложна в настройке, что можно решить с помощью шаблонов виртуальных машин на раннем этапе;
- Все деловые звонки между различными проектными командами проводятся через HTTP-интерфейсы, что неэффективно;
- Развертывание основано на ручной компиляции, упаковке, загрузке, тестировании/онлайн, отсутствии CI/CD и низкой эффективности разработки;
- Нагрузка на эксплуатацию и обслуживание высока, ресурсы эксплуатации и обслуживания отсутствуют, а мониторинг различных сервисов и промежуточного программного обеспечения отсутствует.Хотя Zabbix доступен, он не может управляться и не имеет единой панели мониторинга;
- Трудно динамически выделять и использовать ресурсы виртуальных машин, а эти ресурсы фиксированы;
- Не хватает профессионального персонала по эксплуатации и техническому обслуживанию, установка и мониторинг среды не идеальны, а использование ресурсов трудно визуализировать (есть только один персонал по эксплуатации и техническому обслуживанию);
- Команда внешнего интерфейса также хочет внедрить контейнерное развертывание вместо локальной упаковки и загружать статические файлы через FTP;
- Если персонал по эксплуатации и техническому обслуживанию хочет сократить количество виртуальных машин, им не нужно создавать много виртуальных машин для новых онлайн-сервисов, а достаточно добавить небольшое количество узлов.
Выбор платформы
Болевые точки бизнеса
Начиная с предыдущего введения, в ходе эволюции от единой архитектуры к распределенной архитектуре, с быстрым обнаружением и быстрым реагированием бизнеса, появляется все больше и больше базовых модулей и бизнес-модулей, и команда занята процессом упаковки и развертывания. .
- Исправьте ошибки и упакуйте для развертывания.
- Онлайн-упаковка и развертывание.
- Каждый раз, когда вся команда выходит в интернет, они остаются занятыми до поздней ночи.
- Неэффективность и отложенные версии.
Представляем полуавтоматическое развертывание Jenkins
Чтобы решить проблему эффективности команды, сначала был представлен Jenkins, и большинство проблем с развертыванием были решены с помощью Jenkins.
Представляем Kubernetes (K8s)
Внедрение Jenkins значительно повысило эффективность, но все еще остаются некоторые проблемы:
- Служб слишком много, и каждое развертывание приходится ставить в очередь.
- Слишком много виртуальных машин, а стоимость поддержки сценариев оболочки высока.
- Загрузка ресурсов низкая и не используется в полной мере.
Создание самостоятельного кластера K8s может решить проблему громоздких сценариев Shell. В сочетании с плагином K8s от Jenkins его можно развернуть через Dockerfile + yaml.
Болевые точки при обслуживании самодельных K8:
- Кластер сложно эксплуатировать и обслуживать, не хватает простых и удобных инструментов визуализации, большая часть команды — разработчики и имеют ограниченный опыт эксплуатации и обслуживания.
- Все операции K8s выполняются в виде чистых сценариев, и их обслуживание затруднено.Из-за отсутствия визуальных инструментов развертывание приложений и модификация конфигурации полагаются на ручное выполнение командных сценариев.
- Цель восстановления разрешений сервера по-прежнему не достигнута.Для устранения проблемы нам по-прежнему необходимо использовать K8s, в котором отсутствует мониторинг ресурсов и планирование.
Причины выбора KubeSphere
В ходе исследования инструментов визуального управления K8 было обнаружено, что KubeSphere больше подходит для компаний.По сравнению с зарубежными Kubernetes Dashboard и Rancher с открытым исходным кодом, KubeSphere все же больше подходит для внутреннего использования.
- Инструмент управления Visual K8s, включая все функции K8s.
- Интегрированный DevOps снижает сложность развертывания и жизненный цикл приложений.
- Мультиарендное управление отвечает потребностям изоляции бизнеса различных дочерних компаний.
- Интегрируйте функции управления разрешениями ролей, чтобы удовлетворить потребности в назначении разных разрешений разным сотрудникам.
- Функция онлайн-просмотра журнала упрощает управление пользователями сервера.
- Визуальное управление кластером и визуализация мониторинга.
- Все функции платформы являются подключаемыми и слабосвязанными, а необходимые функциональные компоненты могут быть установлены опционально в соответствии с бизнес-сценариями.
Практика внедрения и результаты
Развертывание микросервисной архитектуры платформы
Планирование и установка производственной среды KubeSphere
План конфигурации производственного кольца: 3 главных узла: диск 8C 16G 100G, 10+ рабочих узлов (начальный), 20+ рабочих узлов (возможно увеличение).
Разверните набор микросервисов SpringCloud, включая Eureka, Redis и микросервисы платформы электронной коммерции, такие как продукты, заказы, членство и т. д. Микросервисы ToB, более 10 проектов по цифровизации предприятий.
Правила использования KubeSphere
Команда и проектное подразделение
- Создавайте разные корпоративные пространства на базе дочерних компаний и разных терминалов – корпоративные пространства.
- В управлении проектами разные портфели проектов создаются в соответствии с разными направлениями деятельности.
- Создавайте пользователей с обычными для платформы ролями.
- Добавляйте участников в корпоративное пространство, управление проектами и конвейер.
Управление узлами и их развертывание
- Метка узла: настройка метки для каждого узла, используется совместно с yml.
- Режим хост-сети не используется.
- Важные файлы данных монтируются в каталог хоста.
- Внешние службы должны предоставить конфигурацию NodePort.
Кластер КубеСферы
Развертывание и конвейер приложений KubeSphere
Эффекты использования KubeSphere
- Полноценный DevOps освобождает от работы по частой упаковке и развертыванию разработки и фокусируется на исследованиях и разработках.
- Визуальный мониторинг ресурсов в сочетании с сигнализацией и другими мерами улучшает возможности эксплуатации и технического обслуживания.
- Мультиарендность, мультипространство, изоляция проектов и разделение прав пользователей делают управление межбизнес-группой более точным.
- Уменьшите исходный виртуальный хост (4C 8G), чтобы сформировать узел с большими ресурсами, улучшив использование ресурсов.
- Он поддерживает динамическое онлайн-расширение и прост в эксплуатации. Если вы хотите добавить или уменьшить экземпляры, вы можете сделать это с помощью всего одной операции.
- Интерфейсная часть также реализует контейнерное развертывание, освобождая от необходимости вручную упаковывать и загружать данные.
Проблемы и решения
Официально предоставленная версия Maven на тот момент не была версией 3.6.Как это решить?
Решение. Создайте базовый образ Maven 3.6 самостоятельно, затем найдите образ Maven в конфигурации кластера и измените его.
Я сам построил Nexus, как изменить maven settings.xml?
Решение: отфильтруйте kubesphere-devops-system в CRD, найдите ks-install и измените файл maven settings.xml внутри. После внесения изменений войдите в Jenkins и перезагрузите конфигурацию.
Как получить доступ к Дженкинсу?
Решение: IP мастера + 30180, пароль учетной записи и администратор KubeSphere. Вы можете обратиться к файлу: https://juejin.cn/post/7124589639536476190 .
Как получить доступ к общим файлам в контейнере?
Решение: Доступ путем установки системы NFS.
Файлы в контейнере исчезают при его уничтожении. Хотите сохранить файлы на более длительный срок?
Решение: смонтируйте файлы/или диски хоста.
Будет ли контейнер уничтожен в процессе последовательного развертывания?Будет ли по-прежнему доступен доступ к другим служебным вызовам через старый IP-адрес 404?
Решение: Вызов (SVC) через Сервис в Kubernetes.
Как DevOps работает с самостоятельно созданным Gitlab, запуская сборку?
Решение: введите Jenkins и используйте универсальные триггеры-перехватчики в конвейере.
будущий план
Благодаря внедрению платформы управления промежуточным программным обеспечением KubeSphere общая эффективность доставки значительно повышается, экономится время в процессе развертывания, а CI/CD лучше реализуется с помощью инструментов; предоставляется визуальный интерфейс ресурсов, обеспечивающий более четкое понимание каждого сервера. можно хорошо контролировать.
По мере развития использования платформы на нее будет переходить все больше и больше предприятий, включая интерфейсные, .net и другие дочерние предприятия. Дополнительные функции KubeSphere послужат хорошей основой для развития бизнеса.
Тан Сяоу, основатель SenseTime, скончался в возрасте 55 лет. В 2023 году PHP находился в застое . Система Hongmeng вот-вот станет независимой, и многие университеты создали «классы Hongmeng». Версия Quark Browser для ПК начала внутреннее тестирование. ByteDance был «запрещен» OpenAI. Стартап-компания Чжихуэйцзюня была рефинансирована на сумму более 600 миллионов юаней, а предварительная оценка составила 3,5 миллиарда юаней. Помощники по написанию кода на основе искусственного интеллекта настолько популярны, что они даже не могут конкурировать в программировании. языковые рейтинги Mate 60 Pro модем 5G и радиочастотная технология далеко впереди No Star, No Fix MariaDB отделяется от SkySQL и становится независимой компаниейЭта статья опубликована OpenWrite, блогом, в котором публикуется множество статей !