Seeking Advice on Kubernetes Deployment Strategy for Multi-Database System

Hi everyone,

I’m in the process of deploying a system for a growing business that includes Elasticsearch Cluster, MySQL, Kafka Cluster, Redis Cluster, and approximately 15 microservices. The infrastructure is currently hosted on a dedicated server with 20 cores, 64GB of RAM, and 1TB of storage. With the business expected to grow in the next two years, I’m planning to scale by adding more nodes to our Kubernetes (K8s) cluster.

I’m seeking advice on the most suitable Kubernetes deployment strategy given the complexity of our system. Here are a few options I’m considering:

  1. Traditional K8s Deployment (kubeadm, kubelet, kubectl):
  • Pros: Standard approach with full customization, widely used in production environments.
  • Cons: May have a steeper learning curve, requires manual configuration.
  1. Lightweight K8s (microk8s or k3s):
  • Pros: Simplified setup, minimal resource requirements, potentially quicker to deploy.
  • Cons: Might lack some advanced features, may not be suitable for complex production environments.
  1. Other Deployment Tools:
  • Are there other deployment tools that the community recommends for a system with multiple databases and microservices? Any experiences or success stories with specific tools?

Additional Information:

  • The goal is to ensure scalability, reliability, and ease of management as the business expands.
  • Consideration for resource utilization and efficiency is crucial.
  • Future plans involve adding more nodes to the Kubernetes cluster as the business grows.

I’d greatly appreciate any insights, recommendations, or experiences you can share regarding the deployment of Kubernetes in similar scenarios. Feel free to highlight any challenges you faced or advantages you found with specific deployment strategies.

Thanks in advance for your valuable input!