什么是 Kind
Kind
(Kubernetes in Docker) 是一个 Kubernetes
孵化项目,Kind
是一套开箱即用的 Kubernetes
环境搭建方案。顾名思义,就是将 Kubernetes
所需要的所有组件,全部部署在一个 Docker
容器中,可以很方便的搭建 Kubernetes
集群。
Kind
已经广泛的应用于 Kubernetes
上游及相关项目的 CI
环境中,官方文档中也把 Kind
作为一种本地集群搭建的工具推荐给大家。
项目地址:https://github.com/kubernetes-sigs/kind
Kind 可以做什么?
快速创建一个或多个
Kubernetes
集群支持部署高可用的
Kubernetes
集群支持从源码构建并部署一个
Kubernetes
集群可以快速低成本体验一个最新的
Kubernetes
集群,并支持Kubernetes
的绝大部分功能支持本地离线运行一个多节点集群
Kind 有哪些优势?
最小的安装依赖,仅需要安装
Docker
即可使用方法简单,只需
Kind Cli
工具即可快速创建集群使用容器来模似
Kubernetes
节点内部使用
Kubeadm
的官方主流部署工具通过了
CNCF
官方的K8S Conformance
测试
Kind 是如何工作的?
Kind
使用容器来模拟每一个
Kubernetes
节点,并在容器里面运行
Systemd
。 容器里的
Systemd
托管了
Kubelet
和
Containerd
,然后容器内部的
Kubelet
把其它
Kubernetes
组件:
Kube-Apiserver
、
Etcd
、
CNI
等等组件运行起来。
Kind
内部使用了 Kubeadm
这个工具来做集群的部署,包括高可用集群也是借助 Kubeadm
提供的特性来完成的。在高用集群下还会额外部署了一个 Nginx
来提供负载均衡 VIP
。
安装 Kind
安装 Kind 依赖组件
Kind
把部署 Kubernetes
环境的依赖降低到了最小,仅需要机器安装 Docker
即可。
安装 Docker
这里以 Linux
系统为例:
$ curl -sSL https://get.daocloud.io/docker | sh
更多平台的安装方法可参考官方文档:https://docs.docker.com/install/
安装 Kubectl
如果你需要通过命令行管理集群,则需要安装 Kubectl
。
这里以 Linux
系统为例:
$ curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.15.0/bin/linux/amd64/kubectl
$ chmod +x ./kubectl
$ sudo mv ./kubectl /usr/local/bin/kubectl
更多平台的安装方法可参考官方文档:https://kubernetes.io/docs/tasks/tools/install-kubectl/#install-kubectl
安装 Kind
Kind
使用 Golang
进行开发,原生支持良好的跨平台特性,通常只需要直接下载构建好的二进制文件就可使用。
通过二进制安装
Linux
$ curl -Lo ./kind https://github.com/kubernetes-sigs/kind/releases/download/v0.5.1/kind-linux-amd64
$ chmod +x ./kind
$ mv ./kind /usr/local/bin/kind
Windo