Для этого существует интересный проект kubernetes, который называется cluster-api , который позволяет создавать, настраивать и управлять кластерами kubernetes декларативным способом, аналогичным тому, как мы управляем различными ресурсы в кубернетесь сама. Он определяет новые ресурсы различных типов, такие как Cluster , Machine
Например, вы можете определить кластер следующим образом:
apiVersion: cluster.x-k8s.io/v1alpha2
kind: Cluster
metadata:
name: capi-quickstart
spec:
clusterNetwork:
pods:
cidrBlocks: ["192.168.0.0/16"]
infrastructureRef:
apiVersion: infrastructure.cluster.x-k8s.io/v1alpha2
kind: AWSCluster
name: capi-quickstart
Конечно, вы потребуется стартовый кластер / bootstrap kubernetes, где вы будете развертывать этот ресурс Этот проект все еще находится в стадии создания прототипа, поэтому будьте осторожны.
Посмотрите репозиторий cluster-api на Github: https://github.com/kubernetes-sigs/cluster-api