kontena / pharos-cluster

Pharos - The Kubernetes Distribution
https://k8spharos.dev/
Apache License 2.0
311 stars 43 forks source link

Highly available master components (Kubernetes on Kubernetes) #1311

Open HristoA opened 5 years ago

HristoA commented 5 years ago

What would you like to be added: Option to put Master Nodes(cluster control-planes) inside K8s cluster that they control

Why is this needed: For purpose of HA we need minimum 3 Masters and 3 Workers nodes. We can say that we had 2 clusters: 1 from Master nodes and 1 from Worker nodes

Use cases:

Example cluster.yml:

hosts:

  • address: 10.0.0.1 user: root type: ruler ssh_key_path: ~/.ssh/my_key
jnummelin commented 5 years ago

Option to put Master Nodes(cluster control-planes) inside K8s cluster that they control

I'm not really sure if I understand this correctly. :/ Do you mean there would be one cluster where we could run another set of control planes for other clusters? I.e. deploy all the control plane components into existing K8S cluster and expose the API out somehow?

Proposal is very useful when business needs private BM architecture.

What do you mean with the term BM?

If you do mean running possibly many control planes in some existing cluster, I'm not really sure how it fits into Pharos tooling and distribution "vision". Maybe just write a Helm chart to deploy all the needed things (etcd + api-server + controller + scheduler + ...) and expose the API via Ingress

HristoA commented 5 years ago

First thanks @jnummelin for replay! May be i miss something in architecture concept of K8s but let me try to describe my idea again:

BM - Bare Metal

Control planes is deployed to the same cluster that they control and in general they will control himself also. We benefit with:

jakolehm commented 5 years ago

One option might be microvm pods (like firecracker). Then we could use "normal" pharos up command for managing those control-planes if they just open a ssh port via NodePort (or similar).