A simple, efficient, and reliable cloud-native management platform demo project for multiple Kubernetes clusters
- kind creates a cluster
kind create cluster --name=multi-node
- Get the kubeconfig and paste it into
.config/kube.config
.
kubectl config view --raw
- Run
Run locally
go run ./main.go --kubeconfig .config/kube.config
Cluster deployment
kubectl apply -f sample/hcnmp.yaml
- Testing the interface
Import api documentation to apifox, configure apifox access interface
After using POST /apis/cluster/v1/code/{clusterCode} to add a cluster for hcnmp, hcnmp will write the cluster data to a configmap internally, and then each hcnmp listens to the change event by watching this configmap, and then gets the configmap from the event. configmap, read the configmap data to generate clients into its own sync.Map, when the business interface needs to operate the cluster, get the corresponding cluster clients from sync.
This mechanism utilizes the list/watch mechanism of configmap to achieve cluster data consistency among multiple hcnmp replicas.