使用kind本地启动多集群

在本地利用kind搭建多个集群,验证多集群纳管...

我本地4c/8G的小本儿,跑了两个集群,组建了多集群环境,还行,能玩动...

环境篇

  1. kind安装

  2. 镜像准备

    视网络情况,可以把依赖镜像kindest/node提起pull到本地

  3. docker的data-root目录

    尽量不要放到/var目录下,kind起的集群容器会占用比较大的空间

实操

  1. 创建集群

执行完如下命令后,docker ps可以看到本地启动了两个容器,一个容器对应一个集群。

kind create cluster --image kindest/node:v1.19.16 --name host
kind create cluster --image kindest/node:v1.19.16 --name member

kubectl config use-context [kind-host | kind-member],可以切换kubecl执行的上下文

  1. 安装kubesphere

分别在两个集群各自安装ks组件

# 集群1安装
kubectl config use-context kind-host
kubectl apply -f https://github.com/kubesphere/ks-installer/releases/download/v3.2.1/kubesphere-installer.yaml   
kubectl apply -f https://github.com/kubesphere/ks-installer/releases/download/v3.2.1/cluster-configuration.yaml

# 集群2安装
kubectl config use-context kind-member
kubectl apply -f https://github.com/kubesphere/ks-installer/releases/download/v3.2.1/kubesphere-installer.yaml   
kubectl apply -f https://github.com/kubesphere/ks-installer/releases/download/v3.2.1/cluster-configuration.yaml
  1. 纳管集群

可以在上面的初始化阶段直接改好主和成员集群的关系,这里参考官文即可

host集群的UI地址,可以通过host容器IP:30880来访问,主集群的容器ip,可以如下获取:

docker inspect --format '{{ .NetworkSettings.Networks.kind.IPAddress }}' host-control-plane

实操添加集群时,需要member集群的kubeconfig,可以用如下命令获取到

kind get kubeconfig --name member

记得把kubeconfig中的server地址中改成member容器ip:6443,这样host集群才能访问到member集群

总结

验证功能、测试开发,挺方便的,可以视本地资源紧张情况停掉监控的ns。

现在kind启动的集群默认使用了containerd的runtime,若想进一步调试查看集群内的情况,可以内部集成的crictl代替熟悉的docker工具。

最后修改 May 20, 2022: kubespere 双活 (05f9255)