Выбор варианта Платформы Kubernetes без операционной системы на пограничной платформе

Служба Azure Kubernetes (AKS)

Если вы хотите запустить Kubernetes на границе и заметили, что управляемые решения не совсем соответствуют вашим требованиям, вы можете изучить в качестве варианта без операционной системы. Этот документ поможет вам найти оптимальный вариант для вашего варианта использования при настройке кластеров Kubernetes на границе.

Примечание

Эта статья не является исчерпывающим сравнением; вместо этого он представляет потенциальные пути для принятия решений на основе основных квалификаторов между общими вариантами.

Дерево принятия решений для Kubernetes без операционной системы на краю

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

Схема, показывающая блок-схему для выбора параметров без операционной системы.

Скачивание файла Visio этой блок-схемы

  • MicroK8s: Соответствующее "Low Ops" Kubernetes от Canonical

  • K3s: сертифицированный дистрибутив Kubernetes, созданный для Интернета вещей и пограничных вычислений

  • kubeadm: средство Kubernetes для создания заземленных кластеров Kubernetes; хорошо подходит для стандартных вычислений (Linux/Windows)

Примечание

Низкий уровень операций — это снижение стоимости операций, когда некоторые операционные задачи абстрагируются или упрощаются, например автоматические обновления или упрощенные обновления.

MicroK8s от Canonical

MicroK8s поставляется в виде одного пакета snap , который можно легко установить на компьютерах Linux с поддержкой snap. Доступны альтернативные установки для Windows, macOS и raspberry PI/ARM. После установки MicroK8s создает кластер с одним узлом, которым можно управлять с помощью средств MicroK8s. Он упаковается с собственным kubectl, и некоторые надстройки могут быть включены (например, helm, dns, ingress, metallb и многое другое). Также поддерживаются сценарии с несколькими узлами, узлами Windows и высокой доступностью.

Рекомендации:

  • Существуют различные требования к ресурсам в зависимости от того, где вы хотите запустить MicroK8s. Сведения о минимальных требованиях к ресурсам см. в документации по продукту. Пример:

    • Ubuntu: 4 ГБ ОЗУ, 20 ГБ места на диске

    • Windows: 4 ГБ ОЗУ, 40 ГБ места на диске

  • Рабочие нагрузки Windows поддерживаются только для кластеров MicroK8s с Calico CNI.

  • Для работы каждого узла в многоузловом кластере MicroK8s требуется собственная среда, будь то отдельная виртуальная машина или контейнер на одном компьютере или другой компьютер в той же сети.

  • При запуске MicroK8s на некотором оборудовании ARM могут возникнуть трудности. Сведения о возможных средствах правовой защиты см. в документации .

K3s от Ранчера

K3s — это упрощенный дистрибутив Kubernetes. K3s развертывается как один двоичный файл и поставляется со встроенными инструментами, такими как kubectl и ctr, аналогично MicroK8s.

Рекомендации:

  • Размер двоичного файла меньше 100 МБ, но в зависимости от сценария все еще существуют минимальные требования к ресурсам. Сведения о минимальных требованиях к ресурсам см. в документации.

  • SQLite3 — это система хранения по умолчанию, хотя поддерживаются и другие варианты .

  • Узлы Windows в настоящее время не поддерживаются для K3.

  • Высокий уровень доступности можно достичь с помощью внешней иливнедренной базы данных. В K3s добавлена полная поддержка embedded etcd с выпуска 1.19.5+k3s1.

kubeadm

Kubeadm — это простая ванильная установка Kubernetes с нуля.

Рекомендации:

  • Требуется 2 ГиБ (гибибайт) или больше ОЗУ на компьютер.

  • Требуется по крайней мере 2 ЦП на узле уровня управления.

  • Узел уровня управления должен быть компьютером под управлением ос Linux, совместимой с deb/rpm.

  • Политика поддержки версий и отклонений версий Kubernetes применяется к kubeadm и к Kubernetes в целом. Проверьте политику, чтобы узнать, какие версии Kubernetes и kubeadm поддерживаются.

Управление и автоматизация

Что касается автоматизации и управления подготовкой кластеров без операционной системы, можно изучить несколько вариантов: Ansible и Metal3.

Ansible предоставляет простой способ управления удаленными ресурсами и поэтому является главным кандидатом для управления удаленными узлами и присоединения к кластеру Kubernetes. Все, что вам нужно, это двоичный файл Ansible, работающий на компьютере Linux, и SSH на удаленных компьютерах. Этот метод предоставляет гибкий механизм для выполнения произвольных скриптов на целевых компьютерах. Это означает, что ansible можно использовать с любым из упомянутых выше средств.

Metal3 использует другой подход к решению этой проблемы, используя концепции, аналогичные API кластера. Вам потребуется создать экземпляр временного кластера для подготовки кластеров без операционной системы и управления ими с помощью собственных объектов Kubernetes. На момент написания статьи Metal3 использует kubeadm и поэтому не поддерживает упрощенные дистрибутивы Kubernetes.

Для управления помимо подготовки кластеров рассмотрите возможность изучения кластеров с поддержкой Azure Arc для управления кластерами в Azure.

Дальнейшие действия

Дополнительные сведения см. в следующих статьях: