Всем привет, я 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
-
запускать
Minecraft
Базовая версия -
Открытым
Activate Cheats
возможность создать новый мир
- После того, как вы войдете на сервер с помощью приведенной ниже команды, вы должны увидеть заставку KubeCraftAdmin. В начале игры вам нужно получить реквизит (меч, динамит, кремень).
/connect 10.0.0.1:8000/ws
-
Найдите место для создания забора kubecraft. входитьinitГенерировать структуру.
-
Наконец, вbeaconпо ссылке для активации кластера.
-
К этому моменту в вашем загоне должно быть несколько животных (ресурсы 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)