A Kubernetes (K8s) cluster is comprised of two types of (virtual or bare-metal) machines:
Master — one or more (due to high-availability requirements) node which contros all aspects of the apps containers’ life cycle from scheduling through running to termination.
Worker nodes — where the apps will efectvelly be executed. Each will topically run multiple container instances up to its full hardware capacity (vertical scalability).
But how do these nodes are provisioned and is K8s itself deployed on them — in the first place? One can count on Cloud Provider’s managed K8s services, such as Google GKE, Amazon EKS, Microsoft AKS, Alibaba ACK and others, but they all expose differences wrt. monitoring, high availability, node grouping and auto-scaling, and more importantly, which version of K8s.
 Director on one VM, one uses it to provision all other VMs, creating as many K8s clusters as needed, in any desired topology (Masters and Workers).comes in handy when one wants to provision and manage their own K8s clusters leveraging VMs offered by one of the many supported Infrastructure-as-a-Service (IaaS) providers either on Cloud or on-prems. After installing BOSH
CFCR (via BOSH) does for K8s what K8s does for your containers: provisioning, self-healing, and lifecycle management. It’s really cool!
Finally, it’s worth noting that an intereating project calledis aiming to provide the same capabilities offered by BOSH above. It still is a prototype as of Dec 2019 but I’d recommend keeping one eye on it.