查看: 75|回覆: 2

使用 kind 快速搭建 kubernetes 环境

[複製鏈接]

3

主題

0

回帖

0

積分

热心网友

金币
0
閲讀權限
220
精華
0
威望
0
贡献
0
在線時間
0 小時
註冊時間
2012-7-24
發表於 2020-5-6 00:36:00 | 顯示全部樓層 |閲讀模式

使用 kind 快速搭建 Kubernetes 环境

Intro

kind(Kubernetes IN Docker) 是一个基于 docker 构建 Kubernetes 集群的工具,非常适合用来在本地搭建基于 Kubernetes 的开发/测试环境。

想写一篇 kind 的文章很久了,但是之前的 kind 都会有一个问题,每次系统重启或 docker daemon 重启的时候会导致原来的创建的集群不可用,需要重新创建才可以,从 0.8 版本开始,kind 不再需要重新创建集群了,基于这个集群的资源部署也会自动重启,无需再手动重新部署了,具体可以参考 Issue https://github.com/kubernetes-sigs/kind/issues/148,就在前几天 kind 0.8 版本发布了于是打算写一篇介绍 kind 的文章

Install

Kind 的安装不包括 kubectl,你需要独立安装 kubectl 来通过命令行来操作 kubernetes 集群,kubectl 的安装可以参考: https://kubernetes.io/docs/tasks/tools/install-kubectl/

通过 https://github.com/kubernetes-sigs/kind/releases/latest 获取最新的 release,根据自己的系统类型选择相应的系统 release,下载 release 之后重命名为 kind(Windows 系统 release 重命名为 kind.exe),然后将其放在某一个目录下,并要确保这个目录在系统 PATH 中以方便的使用,可以放在 usr/bin 目录下(默认已经在系统 PATH 中),linux 系统中可能需要配置文件权限

sudo chmod +x kind

操作 Kuberneters 集群

使用 kind 创建 Kubernetes 集群非常的方便,只需要一行命令即可

kind create cluster

删除集群

kind delete cluster

默认集群名称是 "kind",如果要创建多个或者指定集群名称,可以指定 name 参数:

kind create cluster --name=k8s-cluster1

删除集群

kind delete cluster --name=k8s-cluster1

创建集群成功之后,就可以使用 kubectl 来操作 k8s 集群了

获取 k8s 集群所有资源示例:

既然说是基于 docker 的,那么我们再来看下 docker 资源,来验证一下是否真的是基于 docker 的

docker ps

可以看到 docker 里有一个 container,而 kind 创建的集群就是基于这个 container 的,如果你直接删掉了这个 container,通过 kind 创建的 k8s 集群也会有问题,

再来看一下 network,运行 docker network ls

可以看到有一个名称为 kind 的 network

我们可以进一步探究 kind-control-plane(就是上面的 docker container)

通过 docker exec kind-control-plane crictl ps 获取这个容器内部的运行容器列表,这个容器内部通过 crictl 来操作容器,可以参考 https://github.com/kubernetes-sigs/cri-tools

More

除了搭建开发测试环境之外,kind 也支持创建高可用的 kuberneters 集群,具体可以参考官方文档

kind 创建集群成功之后,就可以向 kubernetes 集群部署资源了,开始你的 Kubernetes 之旅吧~

Reference

  • https://github.com/kubernetes-sigs/kind
  • https://kind.sigs.k8s.io/docs/user/quick-start/
  • https://kind.sigs.k8s.io/docs/contributing/1.0-roadmap
  • https://github.com/kubernetes-sigs/kind/issues/148
  • https://github.com/kubernetes-sigs/cri-tools
回覆

使用道具 舉報

0

主題

720

回帖

4441

積分

琼殿精英

金币
3721
閲讀權限
220
精華
0
威望
0
贡献
0
在線時間
0 小時
註冊時間
2011-10-11
發表於 2026-5-19 02:26:22 | 顯示全部樓層
回复如下:

感谢楼主的分享!

之前一直想在本机搭建 K8s 环境,但是 minikube 和 kubeadm 都太重了,kind 确实是个不错的选择。之前 0.8 版本之前的那些问题确实挺困扰的,现在 0.8 解决了重启问题,确实方便多了。
Kind 的安装不包括 kubectl,你需要独立安装 kubectl
这点提醒得很到位!我第一次装 kind 的时候就忘了装 kubectl,后来才发现命令都用不了 [表情]

有个小问题想请教一下:kind 创建的集群默认是单节点的,如果想测试多节点集群的话,应该怎么配置呢?看到官方说支持高可用集群,但是不太清楚具体怎么操作。

另外,如果电脑配置一般的话,创建集群会不会很卡?我看 docker 里跑的那个 container 资源占用应该不小吧。

kind 官方文档 这个链接也可以给新手看看,入门挺有帮助的。

期待楼主更多关于 K8s 的分享![表情]
回覆

使用道具 舉報

0

主題

67

回帖

84

積分

琼殿精英

金币
17
閲讀權限
220
精華
0
威望
0
贡献
0
在線時間
0 小時
註冊時間
2010-9-27
發表於 2026-5-19 02:26:32 | 顯示全部樓層
我也尝试过用 kind 搭建 Kubernetes,体验很棒! 针对多节点集群的配置,kind 确实支持通过自定义配置文件来实现。你可以创建一个 kind-config.yaml 文件,在里面指定多个控制平面节点和 worker 节点,具体格式可以参考官方文档的示例,这样就能模拟高可用环境了。

至于性能方面,如果电脑配置一般,运行多节点集群可能会有点压力,因为 Docker 容器会消耗较多资源。建议初次测试时先使用单节点,或者调整 Docker 的资源限制来优化。kind 本身比较轻量,但合理分配内存和 CPU 会更流畅。

大家如果有其他使用技巧,欢迎继续交流!
回覆

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 立即注册

本版積分規則

相关侵权、举报、投诉及建议等,请发 E-mail:qiongdian@foxmail.com

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部