kind 实用指南

💡 原文中文,约3800字,阅读约需9分钟。
📝

内容提要

kind是一种用于管理Kubernetes集群的工具,适用于本地开发、学习和自动化测试。安装kind的步骤简单,可以使用brew命令(macOS)或curl命令(Linux)。创建kind集群的步骤包括设置环境变量、创建单节点或多节点集群,并使用kubectl命令查看集群信息。其他功能包括端口映射、镜像加载、网络配置、运行时配置、FeatureGates开启和主机目录挂载。

🔎

延伸解读

代理配置:避免镜像拉取失败

文章特别提醒,如果本地配置了代理,在创建 kind 集群前需要重新设置环境变量。因为 kind 运行在容器中,无法访问宿主机的 127.0.0.1,必须将代理地址改为宿主机的实际 IP,否则部署应用时会因拉取不到镜像而报错。这一细节对国内开发者尤为重要,能有效避免常见陷阱。

多节点集群:模拟真实环境

通过 YAML 配置文件,kind 可以创建包含多个 worker 节点的集群,更贴近生产环境。文章给出了配置示例,并展示了创建后查看节点的命令。多节点集群适合测试调度、亲和性等特性,但会消耗更多资源,建议根据本地机器性能选择。

镜像加载与端口映射:本地开发利器

kind 支持将本地构建的 Docker 镜像直接加载到集群中,无需推送至远程仓库,方便快速迭代。同时,通过 extraPortMappings 可以将容器端口映射到主机,便于从外部访问服务。这两项功能显著提升了本地开发和调试的效率。

高级配置:网络、运行时与挂载

文章还介绍了网络配置(如 Pod 子网、Service 子网)、运行时配置(如使用国内镜像加速)以及挂载主机目录到集群节点。这些配置允许用户定制集群行为,适应特定需求,例如加速镜像拉取或共享主机文件。

❓

Q&A

kind 是什么?主要用在哪些场景?

kind 是使用容器管理 Kubernetes 集群的工具,主要用在本地开发环境、学习时的临时环境以及自动化测试。

在 macOS 和 Linux 上分别怎么安装 kind?

macOS 使用 brew install kind 安装;Linux 使用 curl 下载二进制文件并赋予执行权限:curl -Lo /usr/local/bin/kind https://kind.sigs.k8s.io/dl/v0.21.0/kind-linux-amd64 && chmod +x /usr/local/bin/kind。

创建 kind 集群前为什么要重新设置代理环境变量?

如果本地配置有 PROXY,需要将代理地址从 127.0.0.1 改为当前主机的 IP 地址,因为 kind 访问不到本地回环地址,否则部署应用时会报错拉取不到镜像。

如何创建一个多节点的 kind 集群?

编辑配置文件(如 dev-multi-node.yaml),在 nodes 列表中定义 control-plane 和 worker 节点,然后执行 kind create cluster --config dev-multi-node.yaml --name=dev-multi-node。

kind 集群的生命周期管理包括哪些操作?

包括查看集群(kind get clusters)、切换集群(kubectl cluster-info --context kind-{集群名})和删除集群(kind delete cluster --name {集群名})。

如何将本地构建的镜像加载到 kind 集群中?

使用命令 kind load docker-image test:v1 --name dev,将本地镜像 test:v1 加载到名为 dev 的 kind 集群中。

如何将主机端口映射到 kind 集群的容器端口?

在创建集群的配置文件中,为节点添加 extraPortMappings 参数,指定 containerPort、hostPort、listenAddress 和 protocol。例如将容器 30000 端口映射到主机 8000 端口。

如何为 kind 集群配置国内镜像仓库加速?

在集群配置文件中使用 containerdConfigPatches,为 containerd 配置镜像仓库 mirror,例如将 registry-1.docker.io 的 endpoint 设置为 https://docker.nju.edu.cn。

🏷️

标签

➡️

继续阅读