Применение облачных технологий в IoT

облачный носитель Kubernetes Интернет вещей
Применение облачных технологий в IoT

Мало знаний, большой вызов! Эта статья участвует в "Необходимые знания для программистовТворческая деятельность.

Эта статья приняла участие"Проект "Звезда раскопок"", чтобы выиграть творческий подарочный пакет и бросить вызов творческим поощрительным деньгам.

предисловие

Интернет вещей уже генерирует ошеломляющий объем данных, который будет экспоненциально расти с развертыванием сетей 5G. Управление и использование этих данных является сложной задачей.

Whether it is from traffic cameras, meteorological sensors, electric meters, etc., which combines other cameras and sensors in smart urban environments, which may be too many in a central position, especially when you are in the expected device. It will respond to событие.

Kubernetes (сокращенно K8s), который широко использовался в среде гипермасштабируемых облачных вычислений, был перенесен в сценарий периферийных вычислений Интернета вещей. Недавно сформированная рабочая группа Kubernetes IoT Edge возьмет идею запуска контейнеров и распространит ее на периферию, продвигая применение K8s в периферийных средах.

  • Он поддерживает расширение количества подключенных устройств промышленного Интернета вещей (IIoT) до порядка миллионов.Он может не только поддерживать IP-устройства для прямого подключения к облачной платформе K8s, но также поддерживать не-IP-устройства для доступа через шлюз Интернета вещей.

  • Используйте пограничные узлы, чтобы приблизить вычисления к стороне устройства, чтобы уменьшить задержку, уменьшить требования к пропускной способности и повысить надежность для удовлетворения потребностей пользователей в реальном времени, аналитике, агрегации данных и безопасности:

    • Разверните приложения потоковой передачи данных на граничных узлах, чтобы снизить требования к пропускной способности для связи между устройствами и облачными платформами.

    • Развертывание бессерверной среды приложений позволяет пограничной стороне быстро реагировать на определенные чрезвычайные ситуации без связи с облаком.

  • Предоставляет общую плоскость управления для гибридных облачных и пограничных сред для упрощения управления и эксплуатации.

I. Предыстория

1.1 Введение в KubeEdge

KubeEdge — это система с открытым исходным кодом, которая расширяет возможности оркестрации и управления контейнерными приложениями на пограничные устройства. Построенный на Kubernetes, он обеспечивает поддержку базовой инфраструктуры для сетей и приложений, развертывает приложения в облаке и на периферии, а также синхронизирует метаданные. KubeEdge также поддерживаетMQTTПротокол, который позволяет разработчикам писать клиентскую логику и включать ограничения ресурсов для связи устройств на границе. KubeEdge включает в себя две части: облако и периферию.

1.2 Возможности KubeEdge

граничные вычисления

Запуская бизнес-логику на периферии, можно защищать и обрабатывать большие объемы данных локально. KubeEdge сокращает запросы пропускной способности между периферией и облаком, ускоряя ответы и защищая конфиденциальность данных клиентов.

Упрощение разработки

Разработчики могут писать обычные приложения на основе http или mqtt, помещать их в контейнеры и запускать в любом месте на периферии или в облаке.

Нативная поддержка Kubernetes

С помощью KubeEdge пользователи могут организовывать приложения, управлять устройствами и отслеживать состояние приложений/устройств на граничных узлах, точно так же, как управлять кластером Kubernetes в облаке.

богатое приложение

Пользователи могут легко развертывать сложные приложения машинного обучения, распознавания изображений, обработки событий и другие высокоуровневые приложения на периферии.

2 Введение в Kubedge

2.1 Архитектура KubeEdge

2.2 Детальная архитектура

2.2.1 Облачная часть

  • CloudHub: CloudHub — это сервер Web Socket, отвечающий за мониторинг изменений в облаке, кэширование и отправку сообщений в EdgeHub.
  • EdgeController: EdgeController — это расширенный контроллер Kubernetes, который управляет метаданными пограничных узлов и подов, чтобы гарантировать, что данные могут быть доставлены на указанные пограничные узлы.
  • DeviceController: DeviceController - это расширенный контроллер Kubernes, управляет краевым устройством, обеспечивает информацию о устройстве и состояние облачного состояния устройства.

2.2.2 краевые части

  • EdgeHub: EdgeHub — это клиент Web Socket, который отвечает за взаимодействие с облачными службами пограничных вычислений (такими как Edge Controller на диаграмме архитектуры KubeEdge), включая синхронизацию обновлений облачных ресурсов, отправку отчетов об изменениях состояния пограничного хоста и устройства в облако и другие функции.
  • Edged: Edged — это агент, работающий на пограничных узлах для управления контейнерными приложениями.
  • EventBus: EventBus — это клиент MQTT, который взаимодействует с сервером MQTT (mosquitto), предоставляя функции подписки и публикации для других компонентов.
  • ServiceBus: ServiceBus — это HTTP-клиент, работающий на периферии.Он принимает запросы от облачных служб, взаимодействует с граничным HTTP-сервером и предоставляет облачным службам возможность доступа к протокол.
  • DeviceTwin: DeviceTwin отвечает за хранение и синхронизацию состояния устройства с облаком, а также предоставляет интерфейс запросов для приложений.
  • MetaManager: Процессор сообщений Metamanager расположен между обрезными и EdgeHub, который отвечает за легкую базу данных (SQLite) Store / Metadata.

Три фактических развертывания

3.1 развертывание keadm

Меры предосторожности:

  • В настоящее время поддерживаетсяkeadmОперационные системы Ubuntu и CentOS. Поддержка RaspberryPi находится в процессе.
  • Для запуска требуются привилегии суперпользователя (или привилегии root).

3.1.1 Установить диск (главный узел KubeEdge)

по умолчанию10000,10002Пограничные узлы должны иметь доступ к портам и портам в Cloudcore.

keadm initБудет установлено Cloudcore, сгенерированы сертификаты и установлены CRD. Он также предоставляет флаг, который может установить конкретную версию.

важный:1. По крайней мере один из kubeconfig или master должен быть правильно настроен, чтобы его можно было использовать для проверки версии и другой информации о кластере k8s. 1. Убедитесь, что пограничный узел может использовать локальный IP-адрес облачного узла для подключения к облачному узлу, или вам нужно использовать--advertise-addressФлаг указывает публичный IP облачного узла. 1.--advertise-address(Действительно только после версии 1.3) - это адрес, открытый облаком (он будет добавлен в Сан-сертификат CloudCore), и значение по умолчанию является локальным IP.

пример:

# keadm init --advertise-address="THE-EXPOSED-IP"(only work since 1.3 release)

вывод:

Kubernetes version verification passed, KubeEdge installation will start...
...
KubeEdge cloudcore is running, For logs visit:  /var/log/kubeedge/cloudcore.log

3.1.2 Настройка границы (рабочий узел KubeEdge)

  • Получить токен из облака

keadm gettokenсуществуетоблакоВыполнение вернет токен, который будет использоваться при присоединении к граничным узлам.

# keadm gettoken
27a37ef16159f7d3be8fae95d588b79b3adaaf92727b72659eb89758c66ffda2.eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE1OTAyMTYwNzd9.JBj8LLYWXwbbvHKffJBpPd5CyxqapRQYDIXtFZErgYE
  • Присоединиться к граничному узлу

keadm joinБудут установлены Edgecore и mqtt. Он также предоставляет флаг, который может установить конкретную версию.

пример:

# keadm join --cloudcore-ipport=192.168.20.50:10000 --token=27a37ef16159f7d3be8fae95d588b79b3adaaf92727b72659eb89758c66ffda2.eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE1OTAyMTYwNzd9.JBj8LLYWXwbbvHKffJBpPd5CyxqapRQYDIXtFZErgYE
  • важный: 1. --cloudcore-ipportфлаг является обязательным флагом. 1. Если вы хотите автоматически подать заявку на сертификат для пограничного узла,--tokenтребуется. 1. Версия kubeEdge, используемая облаком и периферией, должна совпадать.

вывод:

Host has mosquit+ already installed and running. Hence skipping the installation steps !!!
...
KubeEdge edgecore is running, For logs visit:  /var/log/kubeedge/edgecore.log

3.2 Двоичное развертывание

Меры предосторожности:

  • Для запуска требуются привилегии суперпользователя (или привилегии root).

3.2.1 Настройка облака (главный узел KubeEdge)

  • Создать CRD
kubectl apply -f https://raw.githubusercontent.com/kubeedge/kubeedge/master/build/crds/devices/devices_v1alpha2_device.yaml
kubectl apply -f https://raw.githubusercontent.com/kubeedge/kubeedge/master/build/crds/devices/devices_v1alpha2_devicemodel.yaml
kubectl apply -f https://raw.githubusercontent.com/kubeedge/kubeedge/master/build/crds/reliablesyncs/cluster_objectsync_v1alpha1.yaml
kubectl apply -f https://raw.githubusercontent.com/kubeedge/kubeedge/master/build/crds/reliablesyncs/objectsync_v1alpha1.yaml
  • Подготовить файл конфигурации
# cloudcore --minconfig > cloudcore.yaml

Для получения подробной информации см.Конфигурация облака.

  • бегать
# cloudcore --config cloudcore.yaml

3.2.2 Настройка границы (рабочий узел KubeEdge)

3.2.2.1 Подготовьте файл конфигурации

  • Создать файл конфигурации
# edgecore --minconfig > edgecore.yaml
  • Получить значение токена в облаке:
# kubectl get secret -nkubeedge tokensecret -o=jsonpath='{.data.tokendata}' | base64 -d
  • Обновленная стоимость токена Edgecore профиль:
# sed -i -e "s|token: .*|token: ${token}|g" edgecore.yaml

Этотtokenполучается на вышеописанных шагах.

Для получения подробной информации см.конфигурация края.

3.2.2.2 Эксплуатация

Если вы хотите запустить CloudCore и EdgeCore на одном хосте, сначала выполните следующую команду:

# export CHECK_EDGECORE_ENVIRONMENT="false"

Старт грани ядерной:

# edgecore --config edgecore.yaml

бегатьedgecore -hдля справки и добавления параметров по мере необходимости.

Четыре отражения

K8s проникает в периферийные вычисления, что обеспечивает удобство развертывания приложений на периферийной стороне, в определенной степени изменяет взаимосвязь между граничными приложениями и оборудованием и уменьшает связь между ними. С помощью KubeEdge расширение «пограничных сценариев» может помочь пользователям ускорить совместную работу на стороне облака и выполнить унифицированную доставку, эксплуатацию, обслуживание и контроль крупномасштабных приложений на массивных боковых и терминальных устройствах.

По оценкам Gartner, к 2025 году более 75% корпоративных данных можно будет создавать и обрабатывать за пределами традиционных центров обработки данных и облака, а системы оркестрации, такие как Kubernetes, имеют светлое будущее и зарекомендовали себя как лучший инструмент для решения этой задачи.

использованная литература

разное

«Добро пожаловать для обсуждения в области комментариев, официальный представитель NuggetsПроект «Звезда раскопок»После мероприятия в комментариях будет разыграно 100 штук Наггетсов.Подробнее о лотерее читайте в статье о мероприятии».