集群管理

kubeclipper 支持对 kubernetes 集群的全生命周期管理。

集群操作日志查看

在集群详情页面,点击“操作日志”标签页,可以查看集群操作日志列表。点击操作日志右侧“查看日志”按钮,可以在弹窗中查看全部步骤和节点的详细日志。点击左侧步骤名称,可查看执行步骤详细的日志输出。

在集群操作执行过程中,点击查看日志,您可以实时查看到日志更新来跟踪操作执行情况。对于执行失败的任务,您也可以通过查看日志,找到红色圆点标注的执行步骤和节点,快速定位错误,排查操作失败原因。

集群管理 - 图1

任务失败后重试

对于任务执行失败,但排查错误原因后不需要修改任务参数的情况,您可以点击操作日志右侧的“从断点处重试”按钮,从断点处重新执行任务。

注意:重试操作并不是万能的,您需要自行判断任务执行失败的原因,处理后如果不需要更改执行任务时填写的参数,就可以点击重试按钮,从错误处重新开始执行。

集群操作(如创建、恢复、升级等)执行失败,可能会导致集群状态显示为“xx失败”并无法正常执行其他操作,如果从断点处重试也无法执行成功,您可以参考运维文档,手动修复集群问题。问题修复后,您可以点击集群右侧“更多”>“集群状态”>“重置状态”按钮,重置集群至正常状态。

访问集群 kubectl

Kubectl 是 Kubernetes 命令行工具,您可以用它在 Kubernetes 集群上运行命令。Kubectl 可用于部署应用、查看和管理集群资源、查看日志等。

您可以访问运行中集群的 kubectl,点击集群操作中的“更多“>”访问 kubectl”,就可以在集群 kuebectl 弹窗中执行 kubectl 命令行操作。

集群管理 - 图2

集群设置

编辑

您可以点击集群列表右侧“更多”>“集群设置”>“编辑”按钮,编辑集群描述、备份空间、外部访问 IP、集群标签信息。

保存为模版

您可以点击集群列表右侧“更多”>“集群设置”>“保存为模版”按钮,将集群信息保存为模版,以便再次创建相似配置的集群时使用。

CRI 镜像仓库配置

Docker 和 Containerd 使用 dockerhub 作为默认镜像仓库,如果您需要使用其他镜像仓库(特别是使用自签名 https 仓库或者 http 仓库),您需要配置 CRI 镜像仓库。

点击集群右侧“更多”>“集群设置”>“CRI 镜像仓库”按钮,在 CRI 镜像仓库弹窗中,配置您需要的镜像仓库,您可以选择平台中已存在的镜像仓库,也可以临时填写镜像仓库地址。对于自签名 https 仓库或者 http 仓库,建议您先在“集群管理”>“镜像仓库”页面添加仓库信息,再在此操作中配置。

集群节点管理

在集群详情页的“节点”列表页面,您可以查看当前集群中的节点列表,节点的规格、状态和角色信息。

集群管理 - 图3

添加集群节点

当集群负载较高时,您可以通过为集群添加节点来达到主动扩容的目的,添加新的“节点”不会影响现有的业务的运行。

在集群详情页的节点列表标签页下,点击左侧的“添加节点”按钮,在弹窗中选择可用节点,设置节点标签,点击“确认”按钮。当前版本仅支持添加工作节点。

移除集群节点

在集群详情页的节点列表标签页下,您可以点击节点右侧的 “移除”按钮移除节点。当前版本仅支持移除工作节点。

注意:移除集群节点,您需要注意生产中的安全问题,避免应用发生中断。

集群备份和恢复

KubeClipper 对 kubernetes 集群的备份主要为备份 ETCD 数据库数据,以及 kubernetes 的资源对象备份,如 namespace,deployment、configMap。对资源自身产生的文件和数据不做备份,例如对集群中运行的 mysql pod,该 mysql pod 产生的数据和文件,不会为之备份,同理,文件类的 pv 对象下的文件,也不做备份,仅仅备份 pv 这个对象。KubeClipper 提供的备份功能是热备份,备份期间不影响集群的使用。KubeClipper 虽然不反对在集群 “繁忙期” 备份,但也强烈不赞成在集群 “繁忙期” 备份。

创建备份空间

执行备份之前,您需要先为集群设置备份空间,即设置备份文件的存储位置。备份空间的存储类型可以是 FS 存储或 S3 存储,下面以节点本地存储、NFS 存储和 MINIO 存储为例:

  • 节点本地存储(仅适用单节点实验集群):
  1. 创建存储目录。连接集群 master 节点终端(可参见连接节点终端),使用 mkdir 命令,在 master 节点中创建“/root/backup”目录。
  2. 创建备份空间。点击“集群管理”>“备份空间”,进入备份空间列表页,点击右上角“创建”按钮,在创建备份空间弹窗中,输入“备份空间名称”,如 “local”,选择“存储类型”为 “FS”,填写“备份路径”,如 “/root/backup”。
  3. 设置集群备份空间。创建集群时,在“集群配置”页面选择“备份空间”为 “local”,或者编辑已有集群,在编辑集群弹窗中的“备份空间”中选择 “local”。

注意:使用本地节点存储备份文件,不需要引入外部存储,缺点是如果本地节点遭到破坏,备份文件也会丢失,所以强烈不赞成在生产环境中使用。

  • NFS:
  1. 准备 NFS 存储。准备一台 NFS 服务,并在 NFS 服务器上创建一个用于存放备份文件的目录,如 “/data/kubeclipper/cluster-backups”。

  2. 挂载存储目录。连接集群 master 节点终端(可参见连接节点终端),使用 mkdir 命令,在每个 master 节点中创建 “/data/kubeclipper/cluster-backups” 目录,并 mount 到 NFS 服务器的 /data/kubeclipper/cluster-backups 目录即可。

    命令示例:

    1. mount -t nfs { NFS_IP }:/data/kubeclipper/cluster-backups /opt/kubeclipper/cluster-backups -o proto=tcp -o nolock
  3. 创建备份空间。点击“集群管理”>“备份空间”,进入备份空间列表页,点击右上角“创建”按钮,在创建备份空间弹窗中,输入“备份空间名称”,如 “nfs”,选择“存储类型”为 “FS”,填写“备份路径”为 “/opt/kubeclipper/cluster-backups”。

  4. 设置集群备份空间。创建集群时,在“集群配置”页面选择“备份空间”为 “nfs”,或者编辑已有集群,在编辑集群弹窗中的“备份空间”中选择 “nfs”。

  • MINIO:
  1. 准备 MINIO 存储。搭建 MINIO 服务,部署过程参考官网 https://docs.min.io/docs/minio-quickstart-guide.html,也可以使用已有 MINIO 服务。
  2. 创建备份空间。点击“集群管理”>“备份空间”,进入备份空间列表页,点击右上角“创建”按钮,在创建备份空间弹窗中,输入“备份空间名称”,如 “minio”,选择“存储类型”为 “S3”,填写 “bucket 名称”,如 “kubeclipper-backups”,该 bucket 将由 kubeclipper 自动创建,“Endpoint” 中填写第一步 MINIO 存储服务的 ip 和端口号,填写服务用户名和密码,点击“确定”按钮。
  3. 设置集群备份空间。创建集群时,在“集群配置”页面选择“备份空间”为 “minio”,或者编辑已有集群,在编辑集群弹窗中的“备份空间”中选择“minio”。

您可以在“集群管理”的“备份空间”页面查看所有备份空间列表和详细信息,并执行以下操作:

  • 编辑:编辑备份空间描述,和 S3 类型备份空间的用户名/密码。

  • 删除:删除备份空间,备份空间下存在备份文件的,不允许删除。

集群备份

您可以点击集群操作中的“更多”>“备份和恢复”> “集群备份”按钮,备份集群 ETCD 数据。

您可以在集群详情页面的备份标签页下,查看当前集群的所有备份文件,还可以对备份执行以下操作:

  • 编辑:编辑备份描述。

  • 恢复:执行集群恢复操作,将集群恢复至指定备份状态。

  • 删除:删除指定备份文件。

定时备份

您也可以为集群创建定时备份,点击集群操作中的“更多”>“备份和恢复”> “定时备份”按钮,在定时备份弹窗中,输入定时备份名称、执行类型(重复执行/仅执行一次)和执行时间,并为重复执行的定时备份设置有效备份个数,点击“确认”按钮。

kubeClipper 会在您设置的执行时间为集群执行备份任务,备份文件会自动命名为“集群名称-定时备份名称-随机码”,对于重复执行的定时备份,kubeClipper 会在该定时任务下的备份文件超过有效备份个数时,自动删除超出个数的较早的备份文件。

定时备份添加完成后,可以在集群详情页的“定时备份”标签页查看定时备份信息,也可以在“备份”标签页查看定时备份产生的备份文件。

对于定时备份任务,您还可以执行以下操作:

  • 编辑:编辑定时备份任务执行时间,和重复执行的定时备份的有效备份个数。

  • 启用/禁用:禁用的定时备份任务将暂时停止执行。

  • 删除:删除定时备份任务。

集群备份恢复

如果您在集群正常运行期间执行恢复操作,则 KubeClipper 将对该集群进行覆盖式恢复,就是备份文件里面的 etcd 数据,覆盖现有的数据。

您可以在集群详情页的备份标签页下,点击备份右侧的 “恢复”按钮;或点击集群操作中的“更多”>“备份和恢复”>“恢复集群”按钮,在恢复集群弹窗中选择需要恢复的备份,可以将当前集群恢复至指定备份状态。

注意:集群升级后,将无法再恢复到升级前版本的备份。

集群状态

集群版本升级

如当集群版本不满足需要,您可以为集群升级 kubernetes 版本。与创建集群一样,您需要准备好集群版本所需配置包和目标版本的 kubernetes 镜像并上传至指定位置,详情参见创建集群准备工作

点击集群操作的“更多”>“集群状态”> “集群升级”按钮,在集群升级弹窗中选择安装方式和镜像仓库,选择升级的目标版本,升级的安装方式和 kubernetes 版本的配置与创建集群相同,详情参见集群配置指南

集群升级可以跨小版本,但不支持略过次版本的升级,如您可以从 v1.20.2 升级到 v1.20.13,或由 v1.20.x 升级到 v1.21.x,但不支持从 v1.20.x 升级到 v1.22.x。对于 1.23.x 版本,暂不支持升级到 1.24.x 版本。

升级集群操作可能需要较长时间,您可以在集群详情页面查看操作日志,跟踪集群升级状态。

删除集群

您可以点击集群列表右侧“更多”>“集群状态”> “删除”按钮,删除集群。

注意删除后集群不可恢复。请谨慎操作。如果集群对接了外部存储,回收策略为“保留”的存储类中的数据卷会被保留,您可以通过其他方式访问,或手动删除;回收策略为“删除”的存储类中的数据卷,会在删除集群时自动删除。

重置状态

集群操作(如创建、恢复、升级等)执行失败,可能会导致集群状态显示为“xx失败”并无法正常执行其他操作,如果从断点处重试也无法执行成功,您可以参考运维文档,手动修复集群问题。问题修复后,您可以点击集群右侧“更多”>“集群状态”>“重置状态”按钮,重置集群至正常状态。

集群插件管理

除了在创建集群时安装插件,您也可以为运行中的集群安装存储和其他自定义插件。以安装存储插件为例,点击集群操作中的“更多”>“插件管理”>“添加存储项”按钮,进入添加存储项页面,可以为集群安装存储插件,安装配置与创建集群中的配置相同。

对于已安装的插件,您可以在集群详情页查看插件信息,并执行以下操作:

  • 保存为模版:将插件信息保存为模版,以便为其他集群使用。

  • 移除插件:卸载集群插件。

集群证书管理

更新集群证书

kubernetes 集群证书默认有效期为一年,您可以在集群详情页的基本信息中查看证书过期时间,证书过期前一天,您也可以在集群列表看到证书过期的提醒。更新集群证书,您可以点击集群操作中的“更多”>“集群证书”>“更新集群证书”按钮,更新集群全部证书。

获取 kubeconfig 文件

您可以点击集群操作中的“更多”>“集群证书”>“查看 kubeconfig 文件”按钮,查看集群 kubeconfig 文件,也可以点击弹窗中的“下载”按钮,下载 kubeconfig 文件。