使用 kind 在 Kubernetes 上部署 TiDB 集群
使用 kind 在 Kubernetes 上部署 TiDB 集群
本文介绍了如何在个人电脑(Linux 或 MacOS)上采用 kind 方式在 Kubernetes 上部署 TiDB Operator 和 TiDB 集群。
kind 通过 Docker 容器模拟出一个本地的 Kubernetes 集群。kind 的设计初衷是为了在本地进行 Kubernetes 集群的一致性测试,这意味着你可以使用 kind 模拟出你想要的 Kubernetes 版本集群。你可以在 Docker hub 中找到你想要部署的 Kubernetes 版本。
警告:
对于生产环境,不要使用此方式进行部署。
环境准备
部署前,请确认软件、资源等满足如下需求:
-
资源需求:CPU 2 核+、内存 4G+
注意:
对于 macOS 系统,需要给 Docker 分配 2 核+ CPU 和 4G+ 内存。详情请参考 Mac 上配置 Docker。
-
Docker:版本 >= 17.03
-
Helm Client:版本 >= 2.9.0 并且 < 3.0.0
-
Kubectl:版本 >= 1.10,建议 1.13 或更高版本
注意:
不同版本
kubectl
输出可能略有不同。 -
kind:版本 >= 0.4.0
-
net.ipv4.ip_forward 需要被设置为 1
第 1 步:通过 kind 部署 Kubernetes 集群
首先,请确认 Docker 进程正常运行。然后你可以通过脚本命令快速启动一个本地的 Kubernetes 集群。
-
Clone 官方提供的代码:
{{< copyable "shell-regular" >}}
git clone --depth=1 https://github.com/pingcap/tidb-operator && \ cd tidb-operator
-
运行脚本,在本地创建一个 Kubernetes 集群:
{{< copyable "shell-regular" >}}
hack/kind-cluster-build.sh
注意:
通过该脚本启动的 Kubernetes 集群默认有 6 个节点,Kubernetes 版本默认为 v1.12.8,每个节点默认挂载数为 9。你可以通过启动参数去修改这些参数:
{{< copyable "shell-regular" >}}
hack/kind-cluster-build.sh --nodeNum 2 --k8sVersion v1.14.6 --volumeNum 3
-
集群创建完毕后,执行下列命令将 kubectl 的默认配置文件切换到
kube-config
,从而连接到该本地 Kubernetes 集群:{{< copyable "shell-regular" >}}
export KUBECONFIG="$(kind get kubeconfig-path)"
-
查看该 kubernetes 集群信息:
{{< copyable "shell-regular" >}}
kubectl cluster-info
输出如下类似信息:
Kubernetes master is running at https://127.0.0.1:50295 KubeDNS is running at https://127.0.0.1:50295/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
-
查看该 Kubernetes 集群的
storageClass
:{{< copyable "shell-regular" >}}
kubectl get storageClass
输出如下类似信息:
NAME PROVISIONER AGE local-storage kubernetes.io/no-provisioner 7m50s standard (default) kubernetes.io/host-path 8m29s
第 2 步:在 Kubernetes 集群上部署 TiDB Operator
参考部署 TiDB Operator中的操作。
第 3 步:在 Kubernetes 集群中部署 TiDB 集群
参考标准 Kubernetes 上的 TiDB 集群中的操作。
访问数据库和监控面板
参考查看监控面板中的操作。
删除 TiDB 集群 与 Kubernetes 集群
删除本地 TiDB 集群可参考销毁 TiDB 集群。
通过下面命令删除该 Kubernetes 集群:
{{< copyable "shell-regular" >}}
kind delete cluster