1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/baetyl-baetyl-cloud

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

BAETYL v2

Baetyl-logo

build codecov Go Report Card License Stars

README_CN

Baetyl — это открытый edge-вычислительный framework от Linux Foundation, который расширяет облачные вычисления, данные и услуги до устройств края. Он может обеспечивать временное отключение от сети, низкотранзакционные вычислительные службы, включая соединение с устройствами, маршрутизацию сообщений, удаленную синхронизацию, вычисление функций, захват видео, вывод AI, отчет о состоянии, OTA-конфигурацию и т.д.Baetyl v2 предоставляет новую платформу интеграции облачной и краевой сред, использующую решения управления облаком и эксплуатации краевых устройств. Она разделена на краевое вычислительное ядро и облачная система управления (этот проект) и поддерживает различные методы развертывания. Она управляет всеми ресурсами в облаке, такими как узлы, приложения, конфигурации и т.д., и автоматически разворачивает приложения на краевых узлах для удовлетворения различных сценариев краевых вычислений. Особенно подходящая для новых мощных краевых устройств, таких как устройства AI "все в одном" и коробки уличного оборудования 5G.Основные различия между версией v2 и v1 следующие:

  • Краевое и облачное ядра полностью эволюционировали к облаковой архитектуре, поддерживающей работу на K8S или K3S.
  • Введено декларативное проектирование, позволяющее осуществлять синхронизацию данных (OTA) через тени (Отчет/Желание).
  • В настоящее время краевое ядро не поддерживает нативный режим процессов. Поскольку оно работает на K3S, общее потребление ресурсов увеличивается.
  • В будущем краевое ядро будет поддерживать кластеры краевых узлов.

Архитектура

Архитектура

Облачная система управления (этот проект)

Облачная система управления отвечает за управление всеми ресурсами, включая узлы, приложения, конфигурацию и развертывание. Реализация всех функций осуществляется с помощью плагинов, что удобно для расширения функциональности и доступа к внешним сервисам, а также обеспечивает широкий спектр приложений. Развертывание облачной системы управления очень гибкое. Оно может быть установлено на публичных облачных платформах, частных облачных средах и обычных устройствах. Поддерживается развертывание на K8S/K3S, а также однопользовательское и многопользовательское использование.Основные функции, предоставляемые облачной системой управления в этом проекте, следующие:

  • Управление узлами края
    • Онлайн-установка фреймворка вычислений края
    • Синхронизация (теневой режим) между краем и облаком
    • Сбор информации о узле
    • Сбор информации о состоянии узла
    • Сбор информации о состоянии приложения
  • Управление развертыванием приложений
    • Контейнерные приложения
    • Приложения функций
    • Соответствие узлов (автоматическое)
  • Управление конфигурацией
    • Общие конфигурации
    • Конфигурации функций
    • Тайны
    • Сертификаты
    • Кредентиалы реестров_Открытая версия включает RESTful API для всех вышеуказанных функций, но не включает переднюю панель управления._

Фреймворк вычислений края

Фреймворк вычислений края работает на Kubernetes на узле края, управляет и развертывает все приложения, предоставляющие различные возможности. Приложения включают системные приложения и общие приложения. Все системные приложения официально предоставляются Baetyl, и вам не требуется их настраивать.

Существуют несколько системных приложений:

  • baetyl-init: отвечает за активацию узла края в облаке и инициализацию baetyl-core, завершая работу после выполнения всех задач.
  • baetyl-core: отвечает за местное управление узлом (узел), синхронизацию данных с облаком (синхронизация) и развертывание приложений (движок).
  • baetyl-function: прокси для всех служб времени выполнения функций, вызовы функций проходят через этот модуль.

В настоящее время фреймворк поддерживает Linux/amd64, Linux/arm64, Linux/armv7. Если ресурсы узлов края ограничены, рассмотрите возможность использования легковесного Kubernetes: K3S.

Установка

Пожалуйста, скачайте проект baetyl-cloud перед установкой. Мы используем скрипты/демо в этом проекте как пример для демонстрации шагов. Комплекс управления облачной средой и фреймворк вычислений на краю сети устанавливаются на одном компьютере.```shell git clone https://github.com/bаetyl/bаetyl-cоuld.git


### Подготовка базы данных

Перед установкой bаetyl-cоuld вам следует подготовить базу данных (mysql или mariadb подходят).

Измените `sync-server-address` и `init-server-address` для таблицы `bаetyl_property` в файле SQL *scripts/sql/data.sql*, чтобы задать свои собственные параметры.

```yaml
sync-server-address : https://${host-ip}:30005
init-server-address : https://${host-ip}:30003

Импортируйте файл SQL scripts/sql/tables.sql для создания таблиц и файл scripts/sql/data.sql для инициализации настроек.

Укажите информацию о вашей базе данных в конфигурационном файле scripts/charts/bаetyl-cоuld/conf/cоuld.yml

database:
type: "mysql"
url: "${database_username}:${database_password}(@${database_ip}:3306)/bаetyl_cоuld?charset=utf8&parseTime=true"

Установка bаetyl-cоuld

Перейдите в директорию, где расположен проект bаetyl-cоuld, и выполните следующие команды.

# helm 3
cd scripts/charts
kubectl apply -f ./bаetyl-cоuld/apply/
helm install bаetyl-cоuld ./bаetyl-cоuld/

Убедитесь, что bаetyl-cоuld находится в состоянии Running, и вы также можете проверить логи на наличие ошибок.

kubectl get pod
# NAME                            READY   STATUS    RESTARTS   AGE
# bаetyl-cоuld-57cd9597bd-z62kb   1/1     Running   0          97s

kubectl logs -f bаetyl-cоuld-57cd9597bd-z62kb

Создание и установка узла краевой сети

Вызовите RESTful API для создания узла.

curl -d "{\"name\":\"demo-node\"}" -H "Content-Type: application/json" -X POST http://0.0.0.0:30004/v1/nodes
# {"namespace":"bаetyl-cоuld","name":"demo-node","version":"1931564","create_time":"2020-07-22T06:25:05Z","labels":{"bаetyl_node_name":"demo-node"},"ready":false}
``````shell
curl http://0.0.0.0:30004/v1/nodes/demo-node/init
# {"cmd":"curl -skfL 'https://0.0.0.0:30003/v1/active/setup.sh?token=f6d21baa9b7b2265223a333630302c226b223a226e6f6465222c226e223a2264656d6f2d6e6f6465222c226e73223a2262616574796c2d636c6f7564222c227473223a313539353430323132367d' -osetup.sh && sh setup.sh"}

Выполните установочный скрипт на машине, где установлен baetyl-cloud.

curl -skfL 'https://0.0.0.0:30003/v1/active/setup.sh?token=f6d21baa9b7b2265223a333630302c226b223a226e6f6465222c226e223a2264656d6f2d6e6f6465222c226e73223a2262616574796c2d636c6f7564222c227473223a313539353430323132367d' -o setup.sh && sh setup.sh

Примечание:

  1. Перед установкой граничного узла необходимо настроить среду K3s. Подробнее см. инструкцию по установке k3s. По умолчанию K3s работает в контейнерной среде Containerd, но при переходе на среду Docker сначала установите Docker, см. инструкцию по установке Docker.

  2. Если требуется установка граничного узла на устройстве, отличном от машины, где установлен baetyl-cloud, измените базу данных, заменив адрес узла и активационный адрес в таблице baetyl_property реальными адресами.

Проверьте состояние граничного узла. В конечном итоге два сервиса граничного узла будут находиться в состоянии "Running". Также можно использовать облачную RESTful API для просмотра состояния граничного узла. Убедитесь, что граничный узел находится в сети ("ready": true).```shell kubectl get pod -A

NAMESPACE NAME READY STATUS RESTARTS AGE

baetyl-edge-system baetyl-broker-78f897dd65-dg5hp 1/1 Running 0 75s baetyl-edge-system baetyl-core-77976446d9-pzbt7 1/1 Running 0 89s baetyl-edge-system baetyl-init-7fdd9bcf96-klbpt 1/1 Running 0 102s

curl http://0.0.0.0:30004/v1/nodes/demo-node
# {"namespace":"baetyl-cloud","name":"demo-node","version":"1939112",...,"report":{"time":"2020-07-22T07:25:27.495362661Z","sysapps":...,"node":...,"nodestats":...,"ready":true}}
```

## Интеграция с eKuiper

С версии 2.4.3 BIE интегрирована с [eKuiper](https://github.com/lf-edge/ekuiper). Теперь вы можете развернуть и запустить её одним щелчком мыши через системное приложение BIE.
Для eKuiper версии 1.8.0-alpha.2 достаточно добавить поле `baetyl-ekuiper` в поле `sysApps` при создании или модификации узла.

По умолчанию eKuiper подключается к `baetyl-broker`, поэтому вы можете использовать `baetyl-broker` как источник входящих данных для использования возможностей потока данных и правил eKuiper для обработки данных на граничном узле.

## Связаться с нами

Как первый открытый краевой вычислительный фреймворк в Китае,
Baetyl стремится создать легковесное, безопасное,
надёжное и масштабируемое сообщество краевых вычислений,
что создаст благоприятную экологическую среду.
Чтобы обеспечить лучшее развитие Baetyl,
если у вас есть полезные предложения относительно Baetyl, свяжитесь с нами:

- Приглашаем присоединиться к [группе Baetyl в WeChat](https://baetyl.bj.bcebos.com/Wechat/Wechat-Baetyl.png)
- Приглашаем присоединиться к [сообществу Baetyl в LF Edge](https://lists.lfedge.org/g/baetyl/topics)
- Приглашаем отправить письмо на адрес `<baetyl@lists.lfedge.org>`
- Приглашаем [отправить отчёт о проблеме](https://github.com/baetyl/baetyl/issues)

## Вклад
```Если вы стремитесь внести свой вклад в общее открытое сообщество,
Baetyl предоставляет возможность как для внесения кодовых вкладов, так и для вкладов в документацию.
Для получения более подробной информации обратитесь к: [Как вносить вклад в код или документацию Baetyl](./docs/contributing.md).

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/baetyl-baetyl-cloud.git
git@api.gitlife.ru:oschina-mirror/baetyl-baetyl-cloud.git
oschina-mirror
baetyl-baetyl-cloud
baetyl-baetyl-cloud
master