[reposted from kubernetes-sig-cluster-lifecycle]
Knowing the community is discussing about different cluster deployment tools and joining efforts of them, We'd like to share our thoughts and approach, and hear some feedbacks from you guys. Thanks Introducing Archon Archon <https://github.com/kubeup/archon> is an open-source cloud operator that brings physical instance management into Kubernetes. No matter if it's a cloud instance or a baremetal one, Archon manages its lifecycle. Most importantly it defines the Instance and the InstanceGroup resources which represent a physical instance and an operator controlled group of instances similar to a ReplicaSet respectively. Each InstanceGroup has an Instance template which defines the ways to allocate, provision, shutdown, and dispose of an owned Instance. Implementation details aside, this design has several advantages: **Allow easy scaling of Kubernetes nodes** Just by modifying the `replicas` field on the InstanceGroup resource, one can easily manage the numbers of nodes needed. Better yet something like ASG can be easily achieved without any help of the cloud provider and can be smarter. **Allow self-provisioned cluster** Archon runs as a controller in an existing Kubernetes cluster but with minikube integrated, it can provision a Kubernetes cluster in a similar fashion of bootkube creating a self-hosted cluster. It can start itself with minikube, create the instances needed, provision a master, transfer the related resources (Instances, InstanceGroups etc.) to the newly started master and start another instance of Archon operator in that master to finish the job. **Allow easy rolling-update** Rolling-update of OS level components becomes easy as you just need to spin up a new InstanceGroup with new templates and progressively drain the old one. Something like a Deployment controller will coordinate the new and old InstanceGroups and make sure the load is transferred smoothly. **Allow provisioning of other clustered applications** Because the Instance template is bootstrap method agnostic, it can be used to provision any cluster. An etcd cluster, a tensorflow cluster, a glusterfs cluster... And the best thing is it can work with existing deploy tools. It just does the instance creation/shutdown for them. This makes it the best companion of tools like bootkube and kubeadm. **Allow other operators to provision instances** Instances are just resources. Its interface benefits from all goodies that Kubernetes has to offer: auth, admission, patch, watch etc.. Other operators can effortlessly work with it to provision non-k8s applications on k8s-managed instances. For example, maybe a storage operator can provision a glusterfs cluster by creating a new InstanceGroup and provide the storage as PVs to Kubernetes. ------------------------------ Besides the two core concepts, Archon also brings several useful concepts into Kubernetes as resources: **Network** A subnet in the cluster network. Network can also be provisioned if supported by the cloud provider. **ReservedInstance** ReservedInstances form a pool of instances that are available to be selected, bound and provisioned by a InstanceGroup, similar to a PV waiting to be bound with PVC. Of course InstanceGroups can also choose to dynamically create instances if supported by the cloud provider. ------------------------------ To sum it up, Archon brings an unified interface of physical instance management to Kubernetes and its applications. It enabled self-provisioned, self-scaling Kubernetes and so much more. This is how Archon differentiates from other creation tools like kops and kube-aws. The current implementation is still under active development and lacking in details. It comes with examples that work with bare cloudinit, bootkube, kubeadm under CoreOS, Ubuntu and CentOS on three providers which are AWS, Aliyun and Matchbox for baremetal. Any thoughts are welcome. -- You received this message because you are subscribed to the Google Groups "Kubernetes user discussion and Q&A" group. To unsubscribe from this group and stop receiving emails from it, send an email to kubernetes-users+unsubscr...@googlegroups.com. To post to this group, send email to kubernetes-users@googlegroups.com. Visit this group at https://groups.google.com/group/kubernetes-users. For more options, visit https://groups.google.com/d/optout.