集群管理

本文档介绍如何对在 Kubernetes 上运行的 Alluxio 集群进行管理操作,如升级到新版本和添加新 Worker。

在运行的集群中动态更新 Alluxio 配置

  1. 获取 configmap

$ kubectl -n alx-ns get configmap
NAME                              DATA   AGE
alluxio-cluster-alluxio-conf      4      7m48s
...
  1. 运行 edit configmap 命令以更新 Alluxio 配置:

$ kubectl -n alx-ns edit configmap alluxio-cluster-alluxio-conf

ConfigMap 中应包含 4 个文件: alluxio-env.sh, alluxio-site.properties, log4j2.xml, 和 metrics.properties. 根据需要编辑内容并保存该 ConfigMap。

configmap/alluxio-cluster-alluxio-conf edited
  1. 根据需要重启 Alluxio 组件(以 alx-ns 命名空间下的 alluxio-cluster 为例):

  • coordinator: kubectl -n alx-ns rollout restart statefulset alluxio-cluster-coordinator

  • worker: kubectl -n alx-ns rollout restart deployment alluxio-cluster-worker

  • daemonset fuse (fuse.type = daemonSet): kubectl -n alx-ns rollout restart daemonset alluxio-fuse

  • csi fuse (fuse.type = csi): csi fuse pod 不支持通过 rollout restart 重启,必须通过终止用户端 Pod 或者使用 kubectl -n alx-ns delete pod alluxio-fuse-xxx 命令手动删除 pod 的方式重启。

升级到新的 Alluxio 版本

升级 Operator

  1. 将与新版 Alluxio operator 对应的新 docker 镜像上传到镜像仓库(image registry),并解压该 operator 的 helm chart。 具体请参看 安装文档

  2. 运行以下命令,以将新的更改应用到集群。

升级 Alluxio 集群

在操作之前应了解如下内容:

  • 升级操作开始后,coordinator、worker 和 DaemonSet FUSE 将执行滚动升级以使用新的镜像。现有的 CSI FUSE pod 不会重新启动和升级,只有新的 pod 才会使用新的镜像。

  • 在集群升级期间,缓存命中率可能会略有下降,但在集群再次完全运行后就会完全恢复。

按照以下步骤升级集群:

  1. 将与新版 Alluxio 对应的新 docker 镜像上传到镜像仓库。具体请参看安装文档

  2. 更新 alluxio-cluster.yaml 中的 imageTag 字段,以反映新的 Alluxio 版本。在下面的示例中,新的 imageTagAI-3.6-12.0.2

  3. 运行以下命令将新更改应用到集群。

扩容集群

扩容 worker

在操作之前应了解如下内容:

  • 在集群升级期间,缓存命中率可能会略有下降,但在集群再次完全运行后就会完全恢复。

按照以下步骤扩容 worker:

  1. 更改 alluxio-cluster.yaml,以增加 worker 中的 count。在下面的示例中,我们将从 2 个 worker 扩展到 3 个 worker。

  2. 运行以下命令将新更改应用到集群。

Last updated