LINUX.ORG.RU
ФорумAdmin

Как рулить виртуалками или хотя бы контейнерами датацентра Triton (SmartOS) из OpenNebula?

 , , , ,


0

1

Добрый день,

Пожалуйста, выскажите ваши мнения, можно ли каким-то образом рулить из OpenNebula виртуалками или хотя бы контейнерами Elastic Docker в Triton Data Center (Illumos fork of OpenSolaris).

Более подробно вопрос описан в разделе Issues проекта Triton: https://github.com/TritonDataCenter/triton/issues/327

В Triton есть такие API:

https://apidocs.tritondatacenter.com/docker

https://apidocs.tritondatacenter.com/cloudapi/

И еще вопрос по поводу использования контейнеров Triton в Кубере.

Т.е. K8S-> Triton Docker/Compose

Может ли современный K8S рулить контейнерами через Docker API (без legacy shim) в Triton Elastic Docker (Triton Compose), например через такую связку API:

K8S -> CRI -> какой-то CRI-xxx типа cri-dockerd -> Triton Docker API

?

Т.е. чтобы K8S создавал и запускал свои контейнеры в облаке Triton Datacenter Elastic Docker.



Последнее исправление: sanyo1234 (всего исправлений: 1)

Хм, впечатление, что внешний API для Docker в OpenNebula работает в обратную сторону:

https://docs.opennebula.io/6.6/integration_and_development/automation_tools_integration/docker_machine.html

Т.е. чтобы из Docker CLI можно было рулить Небулой причем через провайдер OpenNebula (а не через Docker API).

А можно ли к OpenNebula прикрутить другие Docker Engine с Docker API типа Triton Compose в качестве виртуализаторов? Т.е. чтобы Небула сама выступала только в роли клиента-оркестратора через Docker API, а не в роли контейнерного виртуализатора.

sanyo1234
() автор топика
Последнее исправление: sanyo1234 (всего исправлений: 3)

Вот еще один issue по поводу K8S-> Triton:

https://github.com/Mirantis/cri-dockerd/issues/237

А в другом issue:

https://github.com/Mirantis/cri-dockerd/issues/106

есть такое:

I am using cri-dockerd as CRI for kubernetes. I have set --container-runtime=remote --container-runtime-endpoint=unix:///var/run/cri-dockerd.sock as flags for kubelet

Может быть, как-то так, заменив unix socket на remote TCP порт?

sanyo1234
() автор топика
Последнее исправление: sanyo1234 (всего исправлений: 1)

А потом берем контейнер того же самого Mirantis с K0S внутри:

https://docs.k0sproject.io/v0.11.0/k0s-in-docker/

и запускаем Кубер в контейнере на том же самом хосте Triton Compose, которым мы и пытаемся рулить из запускаемого Кубера …

Бинго ? :)

sanyo1234
() автор топика
Последнее исправление: sanyo1234 (всего исправлений: 1)
Ответ на: комментарий от sanyo1234

Все таки похоже есть что-то уже готовое для интеграции K8S и Triton:

https://github.com/TritonDataCenter/triton-kubernetes

https://github.com/TritonDataCenter/triton-kubernetes/tree/master/docs/guide

Только мне пока непонятно полностью, как оно работает по сути.

Заметил такое замечание:

The cli triton-kubernetes allows for creating and managing a kubernetes deployment only. Application deployments will still need to be done using kubectl.

Т.е. этот скриптик (или прога) только устанавливает Кубер, включая рабочие узлы K8S, в виртуалки (или контейнеры) на Тритоне и на этом все? Т.е. по сути Кубер остается в неведении, что работает внутри виртуалок именно Тритона, а об использовании Triton Elastic Docker речи даже не идет?

Т.е. образно точно также можно и вручную поставить к примеру кластер линуксовых нод (cp и воркеры) K0S в LX zones или линуксовые виртуалки и получится по сути тоже самое?

А ведь мне хотелось бы подружить K8S с Тритоном на уровне CRI, чтобы Тритон стал CRI совместимым рантаймом (аналогичным к примеру Kata+Firecracker) хотя бы через свой Docker API. Но получается, это другое?

sanyo1234
() автор топика
Ответ на: комментарий от sanyo1234

Хм, похоже, судя по:

https://apidocs.tritondatacenter.com/docker

и

https://www.ianlewis.org/en/container-runtimes-part-3-high-level-runtimes

Тритон предоставляет dockerd API, а CRI-containerd ожидает от remote high level runtime другой API, а именно containerd API? :(

https://www.ianlewis.org/assets/images/771/docker.png

Так что K8S->Triton Elastic Docker пока не получится.

И тем более проще не мучиться с попытками рулежки Тритоном из OpenNebula, а воспользоваться готовым провайдером Terraform Joyent Triton Provider?

https://terraforming.fandom.com/wiki/Triton

В таком случае OpenNebula была бы действительно лишним слоем абстракции, которой для организации IaC пришлось бы рулить всё равно из тех же тулзов типа Terraform и/или Ansible.

С другой стороны, теоретически OpenNebula могла бы быть удобной смотрелкой виртуалок и контейнеров в Triton DC, чем-то похожей на Portainer.

Кстати, Portainer ведь работает через dockerd API? Вот им то как раз наверно и можно красиво просматривать контейнеры в Triton CD? Если верить АИ, то:

Answer
Yes, Portainer can be used to manage Triton Elastic Docker. Portainer is a fully featured Docker and Docker Swarm management tool that supports both standalone Docker installs and Docker Swarm clusters. 
  Triton Elastic Docker is a container environment beyond Docker that Portainer also supports.
  A single Portainer instance can connect to multiple Docker hosts, centralizing container management around one application.
  Therefore, Portainer can be used to monitor the Triton Elastic Docker installation, interact with containerized apps, and deploy new stacks with minimal effort.

https://www.perplexity.ai/search/4fedaaaf-185a-4e06-b262-4ca391afbc0d?s=u

sanyo1234
() автор топика
Последнее исправление: sanyo1234 (всего исправлений: 4)