k3s vs k8s vs k9s

Kubernetes

            k3s vs k8s vs k9s

k3s

Официальный сайт:www.rancher.cn/k3s/

k3s — это дистрибутив Kubernetes, сертифицированный CNCF и предназначенный для Интернета вещей и периферийных вычислений.

K3s требует только монтирования ядра и контрольной группы. Зависимости, требуемые пакетом K3s, включают:

  1. containerd
  2. Flannel
  3. CoreDNS
  4. CNI
  5. Хост-утилиты (iptables, socat и т.д.)
  6. Входной контроллер (Traefik)
  7. Встроенный балансировщик нагрузки службы
  8. Встроенный контроллер сетевой политики

Почему он называется k3s

Цитирую официальный сайт

Мы хотим, чтобы наша установка Kubernetes была вдвое меньше с точки зрения занимаемой памяти. Kubernetes — это слово из 10 букв, сокращенно K8s. Итак, что-то вдвое меньшее, чем Kubernetes, — это слово из 5 букв, сокращенно K3s. K3s не имеет полного имени и официального произношения.

Установка в одной точке

# 一键安装
curl -sLS https://get.k3sup.dev | sh -

Выполняя только одну команду, как указано выше, разворачивается набор всех в одном одноузловом окружении k3s.По сравнению с k8s нет необходимости устанавливать следующие компоненты:

  • kubelet
  • kube-proxy
  • Docker
  • etcd
  • вход, с nginx

Применимая сцена

  • Edge Computing-Edge
  • Интернет вещей — Интернет вещей
  • CI
  • Development
  • ARM
  • Встроить K8s

Принцип работы

图片.png

место хранения

локальное хранилище

k3s удалено k8s встроеноcloud providerтак же какstorageПлагины (разумеется, это не влияет на использование внешних плагинов, устанавливаемых вручную), встроенныеLocal Path Provider.

плагин внешнего хранилища longhorn

Может быть решено с помощью плагина внешнего хранилищаk3sпроблема с хранением

Адрес гитхаба:GitHub.com/longhorn/…

LonghornЛегкий, надежный и мощный. можно использоватьkubectl applyкомандовать или использоватьHelm chartsв существующихKubernetesУстановите Longhorn на кластер. После установки Longhorn в кластеры Kubernetes будет добавлена ​​поддержка постоянных томов.

image.png

Интернет

По умолчанию K3s запускается сFlannelв видеCNIбеги, используйVXLANв качестве бэкенда по умолчанию.

Flannel

Бэкэнд по умолчанию для Flannel:VXLAN.

Флаг и значение CLI описывать
--flannel-backend=vxlan(По умолчанию) Используйте серверную часть VXLAN.
--flannel-backend=ipsec Сетевой трафик шифруется с помощью серверной части IPSEC.
--flannel-backend=host-gw Используйте серверную часть host-gw.
--flannel-backend=wireguard Сетевой трафик шифруется с помощью бэкенда WireGuard. Могут потребоваться дополнительные модули ядра и конфигурация.

k3s в дополнение к встроенномуFlannelПомимо сетевых плагинов, есть еще и встроенныеCoreDNS、Traefik Ingress Controller、Service Load Balancer, если вы не используете компоненты по умолчанию, пользователи также могут сами развертывать другие компоненты, например, используяMetalLBзаменить встроенныйload balancer.

TraefikсовременныйHTTPОбратный прокси-сервер и балансировщик нагрузки созданы для простого развертывания микросервисов. Это упрощает сложность сети при проектировании, развертывании и запуске приложений.

k8s

Kubernetes, также известный какk8s(Первая буква — k, между первой и последней буквой — 8 символов, а последняя буква — s, поэтому для краткости k8s) или для краткости «kube» — это платформа с открытым исходным кодом, которая может автоматически внедрять контейнер Linux. операции.

Термины, связанные с Kubernetes

Как и в других технологиях, в Kubernetes также используется некоторая специализированная лексика, которая может создавать определенные препятствия для понимания и освоения технологии новичками. Чтобы помочь вам понять Kubernetes, мы объясним некоторые общие термины ниже.

  • Хозяин (Мастер): компьютер, используемый для управления узлами Kubernetes. Все назначения задач берутся отсюда.
  • Узел: Компьютер, ответственный за выполнение запроса и назначенных задач. Узлы контролируются хостом Kubernetes.
  • Набор контейнеров (Pod): группа контейнеров, развернутая на одном узле и содержащая один или несколько контейнеров. Все контейнеры в одном наборе контейнеров используют один и тот же IP-адрес, IPC, имя хоста и другие ресурсы. Набор контейнеров абстрагирует сеть и хранилище от базовых контейнеров. Это упрощает перемещение контейнеров по кластеру.
  • Контроллер репликации: используется для управления количеством реплик одного и того же набора контейнеров, которые должны работать где-то в кластере.
  • Услуга: отделяет рабочий контент от наборов контейнеров. Прокси-сервер службы Kubernetes будет автоматически отправлять запросы на обслуживание в правильный набор контейнеров — независимо от того, где в кластере набор контейнеров перемещен или даже заменен.
  • Kubelet: служба, работающая на узле, которая может читать манифест контейнера (container manifest), чтобы убедиться, что указанный контейнер запущен и работает.
  • kubectl: Инструмент настройки командной строки для Kubernetes.

Рекомендуемое чтение

Это особенное. IO/this/docs/con…

k3s vs k8s

Сравнение функций

  • Удалите устаревшие функции, альфа-функции, функции не по умолчанию, которые больше не доступны в большинстве кластеров Kubernetes.
  • Удалите встроенные плагины (такие как плагины облачных провайдеров и плагины хранилища) и замените их внешними плагинами. По умолчанию K3s запускает только два приложения, помимо собственного процесса: coredns и traefik.
  • Добавьте SQLite3 в качестве хранилища данных по умолчанию. etcd3 по-прежнему доступен, но не по умолчанию.
  • Контейнер выполнения по умолчанию изменен с docker на containerd.
  • Обернутый в простой лаунчер, который обрабатывает множество сложных TLS и опций.

k9s

k9s — это полноэкранный инструмент управления пользовательским интерфейсом терминала на основе curses, который может взаимодействовать с кластерами Kubernetes, наблюдать за системными ресурсами, переключаться между различными ресурсами, контрольными списками, журналами, отслеживать события и выполнять поды и т. д., занимая большое количество терминалов. стекла

Адрес гитхаба:GitHub.com/derailed/can 9…

Общие команды

# List all available CLI options
$ k9s help

# To get info about K9s runtime (logs, configs, etc..)
$ k9s info

# To run K9s in a given namespace
$ k9s -n mycoolns

# Start K9s in an existing KubeConfig context
$ k9s --context coolCtx

# Start K9s in readonly mode - with all modification commands disabled
$ k9s --readonly

Диаграмма эффекта бега

Pods

screen_po.png

Logs

screen_logs.png

Deployments

screen_dp.png

Example

dracula.png

Рекомендуемое чтение

Гаджет сообщества Cloud Native SIG