使用 Kind 在 5 分钟内快速部署一个 Kubernetes 高可用集群


使用 Kind 在 5 分钟内快速部署一个 Kubernetes 高可用集群

文章插图
 
什么是 KindKind(Kubernetes in Docker) 是一个Kubernetes孵化项目,Kind是一套开箱即用的Kubernetes环境搭建方案 。顾名思义,就是将Kubernetes所需要的所有组件,全部部署在一个Docker容器中,可以很方便的搭建Kubernetes集群 。
Kind已经广泛的应用于Kubernetes上游及相关项目的CI环境中,官方文档中也把Kind作为一种本地集群搭建的工具推荐给大家 。
项目地址:https://github.com/kubernetes-sigs/kind
Kind 可以做什么?
  1. 快速创建一个或多个 Kubernetes集群
  2. 支持部署高可用的 Kubernetes集群
  3. 支持从源码构建并部署一个 Kubernetes集群
  4. 可以快速低成本体验一个最新的 Kubernetes集群,并支持Kubernetes的绝大部分功能
  5. 支持本地离线运行一个多节点集群
Kind 有哪些优势?
  1. 最小的安装依赖,仅需要安装 Docker即可
  2. 使用方法简单,只需 Kind Cli工具即可快速创建集群
  3. 使用容器来模似 Kubernetes节点
  4. 内部使用 Kubeadm的官方主流部署工具
  5. 【使用 Kind 在 5 分钟内快速部署一个 Kubernetes 高可用集群】通过了 CNCF官方的K8S Conformance测试
Kind 是如何工作的?
Kind使用容器来模拟每一个Kubernetes节点,并在容器里面运行Systemd 。容器里的Systemd托管了KubeletContainerd,然后容器内部的Kubelet把其它Kubernetes组件:Kube-ApiserverEtcdCNI等等组件运行起来 。
Kind内部使用了Kubeadm这个工具来做集群的部署,包括高可用集群也是借助Kubeadm提供的特性来完成的 。在高用集群下还会额外部署了一个Nginx来提供负载均衡VIP
 
安装 Kind安装 Kind 依赖组件Kind把部署Kubernetes环境的依赖降低到了最小,仅需要机器安装Docker即可 。
  1. 安装 Docker
这里以 linux系统为例:
$ curl -sSL https://get.daocloud.io/docker | sh更多平台的安装方法可参考官方文档:https://docs.docker.com/install/
  1. 安装 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
 
安装 KindKind使用Golang进行开发,原生支持良好的跨平台特性,通常只需要直接下载构建好的二进制文件就可使用 。
  1. 通过二进制安装
  • 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
  • windows
$ curl.exe -Lo kind-windows-amd64.exe https://github.com/kubernetes-sigs/kind/releases/download/v0.5.1/kind-windows-amd64$ mv .kind-windows-amd64.exe c:kind.exe更多平台的安装方法可参考官方文档:https://kind.sigs.k8s.io/docs/user/quick-start/
  1. 通过源码安装
如果本地环境已经配置好 Golang (1.11+) 的开发环境,你也可以直接通过源码进行安装 。
$ go get sigs.k8s.io/kind@v0.5.1运行完上述命令后,会将 Kind的可执行文件放到$GOPATH/bin目录内 。为了方便使用,你需要将此目录加入到$PATH中 。
 
使用 Kind安装完成之后,我们可以来看看 Kind支持哪些命令行操作 。
$ kindkind creates and manages local Kubernetes clusters using Docker container 'nodes'


推荐阅读