I was looking into different container OS (K3OS, CoreOS, Talos...) and I see that they all come with different container runtime. I was wondering if I can use different container runtime on different nodes for the same cluster. Is it possible. If yes, How will it affect the cluster?
The short answer is: Yes, you can do it!
You can run different containers runtime (CR) at your cluster, for administration the container runtime is just a variable.
Since Kubernetes 1.5 was introduced the Container Runtime Interface (CRI) a plugin interface which enable kubelet to use a variety of CR.
Every CR has your own strengths, you can choose what you want based on their performance, security, stability etc...
There's no problem run different OS or CR in your cluster, but keep in mind in a production environment it will be difficult to administrate your nodes and debug some issues that may appear.
You can read more about CRI here.