【kind管理脚本-3】脚本函数说明文档 —— 便捷使用 kind 创建、删除、管理集群脚本

下面是一份详细的说明文档,介绍该脚本的功能、用法及各部分的含义,供您参考和使用:


Kind 集群管理脚本说明文档

此脚本主要用于管理 Kind(Kubernetes IN Docker)集群,提供创建、删除、导出 kubeconfig、加载镜像、切换集群、检查状态以及展示/列出预定义模板等功能。以下将详细介绍脚本中各个部分的配置、命令及功能。


1. 配置项

脚本开头定义了一些全局变量,用于配置运行时的参数:

  • KUBECONFIG_PATH
    指定导出的 kubeconfig 文件存放位置,此处默认为当前目录 ("./")。
  • WITH_METRICS
    布尔值,表示是否在集群创建完成后自动部署 metrics-server。默认值为 false;如果设为 true,集群启动后会应用对应的 metrics-server 配置。
  • WITH_INGRESS
    布尔值,用于决定是否在创建集群时安装 Ingress-Nginx 控制器。默认为 false;如果设为 true,集群启动后会应用 Ingress-Nginx 配置。
  • LOAD_IMAGE
    预留用于判断是否需要加载 Docker 镜像,目前脚本中由专门的 load-image 命令来处理该功能。
  • DEFAULT_IMAGE
    如果未手动提供镜像参数,则使用该默认镜像(例如:kindest/node:v1.24.3)。
  • checkmark & crossmark
    用于在输出中显示勾选(✅)或叉(❌),方便用户直观了解各项检查的结果。
  • TEMPLATES_DIR
    指定存放模板配置文件的目录(例如:cluster-demo-setting 目录)。
  • DEFAULT_TEMPLATE
    默认的模板名字,如 ingress-cluster-demo,可用于预设集群配置。

2. 帮助信息

函数 usage() 提供了脚本的使用帮助信息。调用该函数时会输出所有支持的命令及参数说明,包括:

  • create:创建一个新的 Kind 集群
  • delete:删除指定的 Kind 集群
  • export-kubeconfig:导出某个集群的 kubeconfig 文件
  • load-image:将指定的 Docker 镜像加载进 Kind 集群
  • status:查看集群的状态
  • list:列出所有现有的 Kind 集群
  • use:切换到指定的 Kind 集群
  • cluster-demo-setting:列出或展示模板设置,子命令有 listshow
  • help:输出帮助信息

3. 命令工具检查

在脚本初始化部分,会检查以下两个命令是否已安装:

  • kind
  • kubectl

如果其中任一命令不存在,则脚本会输出错误提示并退出。


4. 核心功能函数

4.1. run_command()

  • 功能:打印调试信息(包括执行的命令及其结果),并调用 eval 来执行命令。
  • 用途:便于跟踪脚本执行过程中调用的系统命令和查看输出结果。

4.2. load_template()

  • 功能:加载指定名称的模板配置。模板文件存放于 $TEMPLATES_DIR 目录下,文件名格式为 templateName.yaml
  • 用途:用于在创建集群时加载特定的 Kind 配置文件。加载后内容会输出,可用于调试或直接保存至集群配置文件中。

4.3. create_cluster()

  • 功能:创建一个新的 Kind 集群,支持通过命令行参数指定镜像和模板配置。
  • 参数说明
    • 第一个参数为集群名称。
    • 选项 --image :指定使用的镜像(例如:--image kindest/node:v1.24.3)。
    • 选项 --config