I am going to deploy a solution and willing to have microservices based containerized architecture orchestrated through kubernetes. In my deployment, there will be following components;
applications: mysql DB server + web-app-server
Total VMs: 04 (vm-01, vm-02, vm-03)
For high-availability and load-balancing purposes for each application, I’ve thought to have below structure of running pod replicas on different nodes.
vm-01: DB-replica-1 + web-app-server-replica-1
vm-02: DB-replica-2 + web-app-server-replica-2
Can someone please confirm below;
1-if I should install master kubernetes on vm-03 and create rest of the VMs as worker nodes? Do we need to have separate configurations for master and working nodes and will master be able to manage/control all the applications/replicas running on different VMs as above?
2-in order to run replicas on specific nodes as above, do we need to use nodeSelectors or I can specifically mention the hostnames for pods in my deployment.yaml?
3-any networking issues in above architecture as these applications will be talking to each other extensively in complete solution?
4-any suggestions with respect to replicating the data between replicas (e.g DB replicas running on vm-01 and vm-02).
I’d appreciate if some kubernetes expert helps me out to achieve best possible solution. Thanks