1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/WeBank-Dockin-Ops

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Dockin Ops — сервис управления операциями Dockin

License

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

Для получения дополнительной информации о компонентах Docking посетите https://github.com/WeBankFinTech/Dockin

Введение в компоненты

Dockin-Opserver

dockin-opserver — это агент интерфейса apiserver, разработанный на основе kubernetes client-go, который поддерживает следующие основные функции:

  • Управление несколькими кластерами одновременно;
  • Управление учётными записями пользователей. При доступе к самому Pod учётные записи не управляются. Поэтому, если у вас есть kubeconfig, вы можете получить доступ ко всем Pods. Для межотделенческих ситуаций существуют риски безопасности;
  • Прокси ssh. После входа в Pod через kubectl exec /bin/bash -it пользователи могут выполнять любые команды. Однако из-за особенностей kubernetes существует строгий контроль над памятью, поэтому некоторые операции с использованием памяти, такие как vi для очень больших файлов, могут легко привести к тому, что Pod будет OOM kill. Через прокси ssh мы можем перехватывать все команды, выполняемые пользователями, и выполнять оценку безопасности (чёрные и белые списки);
  • Аудит. Любые команды можно выполнить через kubectl exec. Как пользователь выполняет команду, которая вызывает угрозу безопасности. С помощью функции аудита мы проверим все команды, выполненные пользователем, будь то exec или в среде оболочки. Можно отследить соответствующие архивы;
  • Предоставление интерфейсов http и websocket для выполнения обычных запросов exec и интерактивных запросов exec;
  • Преобразование протоколов. Преобразуйте данные протокола websocket и spdy друг в друга;
  • Сохраните время добавления, обновления и удаления pod в redis через функцию informer клиента-go.

Dockin-Opsctl

Подобно клиенту kubectl, двоичный клиент, пользователь и dockin-opserver устанавливают запрос http или websocket, связывают текущий стандартный ввод и стандартный ввод, входят в необработанный режим в интерактивном режиме.

Dockin-Opagent

Агент dockin развёртывается на каждом узле kubernetes через daemonset и в основном имеет следующие функции:

  • Монтирование docker.sock для подключения к dockerd;
  • Интеграция docker api для работы docker exec;
  • Управление соответствием между containerId и podName на текущем узле;
  • Обеспечение интерфейса spdy для ответа на запросы exec, инициированные dockin-opserver;
  • Связывание потоков ввода и вывода docker api с потоками ввода и вывода spdy.

dockctl

dockctl — это пакет dockin-opsctl:

  • dockctl предоставляет пакетную обработку нескольких Pods по подсистемам;
  • Улучшает вывод. dockin-opsctl возвращает стандартный вывод, в основном данные json, dockctl улучшит отображение данных json.

Список функций с открытым исходным кодом

  • dockctl cmdb, ограничение информации, связанной с Pod, на основе подсистемы;
  • exec proxy;
  • инструмент ssh: поддержка перехвата команд ssh, поддержка перехват параметров команд, поддержка управления учётными записями;
  • управление разрешениями Pod.

План развития

  • Оптимизация анализа содержимого оболочки (на основе управляющих символов и символов перехода);
  • Загрузка и скачивание файлов (kubectl cp без apiserver);
  • захват событий oom;
  • kubectl debug.

Демо

SSH

2b95d08c-6154-42b8-b195-92ff0097c8d3.gif

CMDB

c84bcbdb-857e-4680-8174-5f18b160ac59.gif

Сторонние компоненты

  • Кластер kubernetes. Автономную установку можно выполнить с помощью dokin-installer: https://github.com/WeBankFinTech/Dockin-installer.
  • Заранее разверните dokin-rm. opserver должен вызывать интерфейс rm для получения информации: dockin-rm. Подготовьте Redis. В Redis хранится чёрный и белый список некоторых команд оболочки. Информацию об изменении пода, которую отправляет apiserver через информер, можно быстро обработать с помощью следующих команд:
docker run -p 6379:6379 -d redis:latest redis-server

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
Go и 6 других языков
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/WeBank-Dockin-Ops.git
git@api.gitlife.ru:oschina-mirror/WeBank-Dockin-Ops.git
oschina-mirror
WeBank-Dockin-Ops
WeBank-Dockin-Ops
develop