arkitektio / arkitektio.github.io

The documentation for the Arkitekt Platform powered by docusaurus
https:/arkitekt.live
5 stars 1 forks source link

Kubernetes support for Port #3

Open jhnnsrs opened 8 months ago

jhnnsrs commented 8 months ago

Context: Arkitekt's Port currently facilitates container scheduling primarily through direct Docker calls, enabling efficient application deployment on single-node systems. However, as the demand for more complex, distributed, and scalable bioimaging tasks increases, there's a growing need to extend Port's capabilities to multi-node environments. Kubernetes, a powerful and widely-adopted container orchestration platform, offers the tools and flexibility required for these tasks. Integrating Kubernetes support into Port would significantly enhance its scalability and efficiency, particularly for large-scale and high-performance computing tasks.

Limitations

Arkitekts container placing in larger infrastructure does not allocate to the best resources.

Proposed Solution

Develop Kubernetes as an additional backend for Container scheduling in Port.

  1. Kubernetes Integration: Introduce Kubernetes as an additional backend for Arkitekt Port, allowing users to schedule containers across multiple nodes. Ensure that Port can seamlessly switch or choose between Docker for single-node setups and Kubernetes for multi-node setups based on the user's environment and needs.
  2. Abstract Interface: Develop an abstract interface within Port that can interact with both Docker and Kubernetes. This interface should manage the deployment, management, and scaling of containers without the user needing to understand the underlying complexities of the orchestration platform. The abstract interface should maintain consistency in how users interact with Port, regardless of whether Docker or Kubernetes is managing the containers.
  3. Ease of Transition: Provide tools and documentation to assist users in transitioning from single-node Docker environments to multi-node Kubernetes clusters. This might include migration guides, best practices, and troubleshooting tips.
  4. Flexibility and Compatibility: Ensure that the integration is flexible enough to support a variety of Kubernetes environments, including self-hosted clusters, cloud-based services like Google Kubernetes Engine (GKE), Amazon Elastic Kubernetes Service (EKS), and others.

Linked Issues

Container Flavours: #2