Cluster computing involves connecting multiple computers together to work as a single system. The key components of a cluster include applications, parallel programming environments, cluster middleware, computers connected via a high-speed network switch. There are three main types of clusters: load-balancing clusters which distribute work evenly, high availability clusters which ensure critical applications can failover to another node, and high performance clusters which tackle complex computations.