Если вы хотите запустить Kubernetes на границе и обратите внимание на то, что управляемые решения не соответствуют вашим требованиям, вы можете изучить без операционной системы как вариант. Этот документ помогает найти оптимальный вариант для вашего варианта использования при настройке кластеров Kubernetes на границе.
Примечание.
Эта статья не является исчерпывающим сравнением; скорее, он представляет потенциальные пути принятия решений на основе основных квалификаторов между общими вариантами.
Дерево принятия решений для Kubernetes с голым металлом на краю
Обратитесь к следующему дереву при выборе между параметрами, представленными ниже для Kubernetes без операционной системы на краю.
Скачивание файла Visio для этой блок-схемы
MicroK8s: Соответствие "Low Ops" Kubernetes каноническим
K3s: сертифицированное распределение Kubernetes, созданное для вычислений Интернета вещей и пограничных вычислений
kubeadm: средство Kubernetes для создания кластеров Kubernetes с нуля; хорошо подходит для стандартных вычислений (Linux/Windows)
Примечание.
Низкие операции относятся к сниженной стоимости операций, когда некоторые операционные задачи абстрагируются или упрощаются, например автоматические обновления или упрощенные обновления.
MicroK8s по каноническому
MicroK8s поставляется в виде одного пакета оснастки , который можно легко установить на компьютерах Linux с поддержкой оснастки. Альтернативные установки доступны для Windows, macOS и raspberry PI/ARM. При установке MicroK8s создает кластер с одним узлом, который можно управлять с помощью инструментов MicroK8s. Он упакован с собственным kubectl, и некоторые надстройки могут быть включены (например, helm, dns, ingress, metallb и многое другое). Также поддерживаются сценарии с несколькими узлами, узлами Windows и высоким уровнем доступности.
Рекомендации:
Существуют различные требования к ресурсам в зависимости от того, где требуется запустить MicroK8s. Справочная документация по продукту для минимальных требований к ресурсам. Например:
Ubuntu: 4-ГБ ОЗУ, дисковое пространство размером 20 ГБ
Windows: 4 ГБ ОЗУ, дисковое пространство размером 40 ГБ
Рабочие нагрузки Windows поддерживаются только для кластеров MicroK8s с CNI Calico.
Каждому узлу в кластере MicroK8s multinode требуется собственная среда для работы, будь то отдельная виртуальная машина или контейнер на одном компьютере или другом компьютере в одной сети.
Трудности могут возникнуть при запуске MicroK8s на некотором оборудовании ARM. Справочные материалы по потенциальным средствам правовой защиты.
K3s ранчер
K3s — это упрощенное распределение Kubernetes. K3s развертывается как один двоичный файл и поставляется со встроенными инструментами, такими как kubectl и ctr, как и MicroK8s.
Рекомендации:
Двоичный файл меньше 100 МБ, но в зависимости от вашего сценария по-прежнему требуется минимальный объем ресурсов. Справочные материалы по минимальным требованиям к ресурсам.
SQLite3 — это система хранения по умолчанию, хотя поддерживаются другие варианты .
Узлы Windows в настоящее время не поддерживаются для K3s.
Высокий уровень доступности можно достичь с помощью внешней базы данных или внедренной базы данных. K3s добавил полную поддержку внедренных и т. д. в выпуске версии 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.
Следующие шаги
Дополнительные сведения см. в следующих статьях: