Am new to kubernetes Technologies,
I want to do live production setup in my organization. They used physical Linux (Ubuntu) virtual servers for this deployment.
Need to do 15 micro services deployment in K8S cluster.
Could anyone give a clear picture from end to end for this. It will more helpful for me.
Broadly you want to approach this at two levels - first, creating k8s cluster and then deploying the required microservices on it.
For cluster creation you will have to consider following questions:
- number of master nodes
- number of worker nodes
- Pod networking to use
- Persistent storage for your cluster
- Load balancing to expose microservices publicly outside the cluster
For cluster provisioning, consider kubeadm or kubespray.
For networking, consider using Calico
For load balancing, consider using MetalLB
Once you have the cluster up and running, focus on the deployment and day-2 operations for your microservices. Think about following aspects for this:
- how to expose these services to outside world (use Ingress with MetalLB)
- is there a database involved? does it need to run on k8s? If so, consider using any of the available db operators
- is traffic management between microservices needed? if so, consider using a service mesh.
etc.
Keep in mind that the entire process is going to be iterative. Also, if you are used to doing deployments on VMs using tools like Ansible, keep this at the back of mind that those approaches won’t translate exactly in k8s. You will need to learn k8s concepts/abstractions to create your microservices’s deployments.
If needed, send me a message if you have any specific question. I will be happy to answer.