1. kind 安装
这里使用的环境是在mac上,直接安装即可
brew install kind
linux环境下官网下载kind release (https://github.com/kubernetes-sigs/kind/releases),添加到PATH中。
2. 集群启动
(1)简单启动,直接create
kind create cluster
这里会拉取默认的kindest/node镜像和创建默认的集群名字
(2)指定cluster版本和集群名称
kind create cluster --image kindest/node:v1.16.15 --name my-cluster
(3)添加config启动集群
上面启动集群的操作,对集群使用的都是默认的配置,想要配置一些集群参数要在config中添加。
这里说一下我添加配置的原因:
我想本地安装一个k8s集群,同时能够支持通过本地浏览器访问服务(也就是服务可以暴露到本地),首先我采用第二种方式启动了一个集群,然后创建了一个nginx的应用和一个nodeport类型的svc,当我访问node ip+port时,发现无法访问,查看kind原理是docker直接启动的container,所以想要暴露服务就要进行端口映射(docker的port映射到本地),这里就需要config配置文件的存在。
kind create cluster --image kindest/node:v1.16.15 --config=-
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
- role: control-plane
kubeadmConfigPatches:
- |
kind: InitConfiguration
nodeRegistration:
kubeletExtraArgs:
node-labels: "ingress-ready=true"
extraPortMappings:
- containerPort: 80
hostPort: 80
protocol: TCP
- containerPort: 443
hostPort: 443
protocol: TCP
EOF
这里直接使用的官网上的配置,映射了两个端口,同时开启了ingress,详情参考:https://kind.sigs.k8s.io/docs/user/quick-start/#loading-an-image-into-your-cluster
具体的应用部署就不再阐述了。
结束语
kind的整体体验比较好,集群启动速度快,资源占用也不高,以后一下开源组件的实验和配置可以在本机调试和使用了。