Забавный проект Go, 3D-интерфейс для управления кластером k8s, очень весело

задняя часть Kubernetes

Всем привет, я Xiaowantang, сегодня я поделюсь очень интересным инструментом, разработанным в Golang.KubeCraftAdmin: Инструмент для управления k8s в стиле Minecraft, братья, которые заинтересованы, могут захотеть поиграть.

Minecraft: Minecraft — игра-песочница, принадлежащая Microsoft. Игроки могут взаимодействовать с блоками в трехмерном мире. Это очень популярная игра, в которой игроки строят фантастические виртуальные миры из цифровых блоков.

Почему бы не создать иммерсивный трехмерный пользовательский интерфейс «песочницы» для управления рабочими нагрузками при оркестровке контейнеров?

KubeCraftAdminВдохновленMakeCode для Minecraft превращает обучение программированию в увлекательное занятие, программно управлять мирами в Minecraft через сервер WebSocket.

Предметы населены разными животными в разных вольерах (по одному на пространство имен). Каждое животное соответствует ресурсу в кластере k8s.

  • Свиньи - это стручки
  • Корова ReplicaSets
  • Курица это услуги
  • Лошади - это развертывание

Подключитесь к KubeCraft Admin WS, чтобы подключиться к указанному кластеру k8s. Отражение ресурсов кластера через животных. Животные умирают, когда ресурсы удаляются. И наоборот, убийство животного в Minecraft удаляет соответствующий ресурс.

KubeCraftAdmin

KubeCraftAdmin: инструмент администратора для авантюристов

你会杀了这个看似无辜的服务吗?

Этот проект позволяет вам выполнять базовое управление Kubernetes через Minecraft.

Если вы хотите заниматься, вам нужны следующие условия:

  • Кластер k8s
  • Запускать контейнеры kubecraft внутри или вне кластера, необходимо иметь возможность подключения к кластеру k8s и клиенту Minecraft.
  • Базовое издание Майнкрафт

Запустите KubeCraftAdmin

Запустите контейнер, установите сопоставление портов и смонтируйте каталог .kube. Контейнер прослушивает порт 8000 внутри. Можно использовать переменные средыnamespacesУкажите от 1 до 4 пространств имен из кластера.

docker run --name kca -d -p 8000:8000 -v /root/.kube:/.kube -e namespaces=kca1,kca2 erjadi/kubecraftadmin
# docker ps -f name=kca
CONTAINER ID   IMAGE                   COMMAND       CREATED          STATUS          PORTS                                       NAMES
58ee6241048b   erjadi/kubecraftadmin   "/app/main"   30 seconds ago   Up 29 seconds   0.0.0.0:8000->8000/tcp, :::8000->8000/tcp   kca
  1. запускатьMinecraftБазовая версия

  2. ОткрытымActivate Cheatsвозможность создать новый мир

  1. После того, как вы войдете на сервер с помощью приведенной ниже команды, вы должны увидеть заставку KubeCraftAdmin. В начале игры вам нужно получить реквизит (меч, динамит, кремень).
/connect 10.0.0.1:8000/ws
  1. Найдите место для создания забора kubecraft. входитьinitГенерировать структуру.

  2. Наконец, вbeaconпо ссылке для активации кластера.

  3. К этому моменту в вашем загоне должно быть несколько животных (ресурсы k8s).

технические детали

KubeCraftAdmin написан на Golang. он построен наSandertvизMCWSSна проекте.

Этот проект доступен в Minecraft Basic Edition и Education Edition, используяWebsocket Serverфункция. WS-соединение — это клиентское соединение Minecraft, и все действия выполняются через клиент.Server/LocalНе затрагивается и не находится под контролем этого проекта. Это означает, что нам нужно активировать механизм читерства, чтобы иметь возможностьгенерироватьилиубийствоорганизация.

допустимыйkubecraftadmin.goОсновной процесс, найденный в .

Упрощенный KubeCraftAdmin подключается к кластеру Kubernetes, генерирует необходимые сущности и запускает функцию бесконечного цикла.LoopReconcile. Каждую секунду он запускаетReconcileKubetoMCФункция синхронизации, ее основное содержание:

  • Перечислить объекты в Minecraft
  • Перечисление ресурсов в Kubernetes
  • Заспавни или убей разницу в Майнкрафте

Для обратной синхронизации полагайтесь на mobEvent, который срабатываетReconcileMCtoKubeMobисполнение. По сути, выполняются те же проверки, но на этот раз с сущностью Minecraft в качестве стандарта и соответствующим образом удаленным ресурсом Kubernetes.


Переведено с:Minecraft as a k8s admin tool

оригинальный

Эта статья была впервые опубликована в общедоступной учетной записи WeChat [My Little Bowl of Soup]. Отсканируйте код слева, чтобы следовать ему, узнайте больше о консультациях и получите бесплатные ресурсы для изучения.

Автор лаконичен

Автор: Xiaowantang, парень, который любит и серьезно пишет, в настоящее время поддерживает исходную общедоступную учетную запись: «Мой Xiaowantang», уделяя особое внимание написанию, разработке и эксплуатации, а также знаниям в области обслуживания, таким как язык go, docker, kubernetes, java и т. д. для улучшения жесткой мощности. Статья, жду вашего внимания. Инструкция по перепечатке: Обязательно указывайте источник (Примечание: Из публичного аккаунта: My Xiaowantang, автор: Xiaowantang)