Alluxio
ProductsLanguageHome
AI-3.4
AI-3.4
  • 概览
  • 部署Alluxio
    • 资源需求和兼容性
    • 在Kubernetes上安装Alluxio
    • 监控和指标
    • Alluxio 集群操作
    • 系统健康检查和快速恢复
    • 采集集群信息
  • 底层存储系统
    • 存储集成概述
    • Amazon AWS S3
    • HDFS
    • 阿里云 OSS
    • 腾讯 COS
    • 火山引擎 TOS
    • GCS
  • Client APIs
    • Alluxio Python Filesystem API based on FSSpec
    • 基于 FUSE 的 POSIX API
    • S3 API
  • 功能
    • Alluxio 命名空间和底层文件系统命名空间
    • 缓存预加载
    • Client 写回
    • 缓存驱逐
      • 基于 TTL 的缓存驱逐
      • 基于优先级的缓存驱逐
    • 缓存过滤
    • 缓存释放
    • 基于目录的集群配额
    • 文件多副本
    • 文件分片
    • 索引服务
    • I/O弹性
  • 性能基准测试
    • Fio 测试概览
    • MLPerf Storage 基准测试
    • 性能优化
    • COSBench 性能基准测试
  • 参考
    • 用户命令行接口
    • S3 API Usage
    • Third Party Licenses
  • 版本发布说明
Powered by GitBook
On this page

Last updated 3 months ago

首先确认 operator 启动成功,并且有 clloectinfo controller 在运行。 下面是 operator 的信息,可以看到 collectinfo controller 在运行。如果 collectinfo controller 不存在, 表明当前使用的 operator 版本不支持 collectinfo 功能,请升级 operator 版本

确认 Alluxio 集群是否启动成功, 假设 Alluxio 集群在 default 命名空间下 下面是 Alluxio 集群的信息,可以看到 Alluxio 集群的各个组件都在运行

采集信息

假设 Alluxio 集群位于 default 命名空间,创建 collectinfo.yaml 文件,内容如下:

创建 collectinfo ,开始采集信息。

可以通过 collectinfo 的状态来查看采集信息的进度, 下面表示采集 5 种信息,全部采集完成。

collectinfo 会在 alluxio-operator 命名空间下创建多个 job ,用于采集 Alluxio 集群的信息。 默认采集全部信息,可以看到有 5 个 job 在运行,分别是 config, hardware, license, logs, metrics。

采集信息失败

下面表示采集信息失败,有 4 种信息采集失败。

查看 collectinfo 的 job 信息, 可以看到 collectinfo 的 job 只有 hardware job 成功,其他的 job 都失败了。

无论 collectinfo 操作是成功还是失败,您都可以下载收集结果。

如果存在任何失败,结果中将包含 error.log 以供调试。

下载结果

有两种方法可以下载信息的结果:kubectl cp 和 kubectl port-forward。

结果包含以下类型的信息:

  • config: Alluxio conf/ 目录中的配置文件,例如 alluxio-site.properties 和 alluxio-env.sh。

  • hardware: 每个 Kubernetes 节点的 CPU 和内存详细信息。coordinator、worker、fuse 和 operator 组件的硬件规格。

  • license: Alluxio 集群的许可证信息,包括类型、productionId 和 licenseVersion。以及正在使用的 vCPU、内存和存储。

  • logs: coordinator、worker、fuse、etcd 和 operator 组件的日志。支持 tail 日志以显示末尾指定行数的日志。

  • metrics: 允许设置持续时间(duration)和步长(step),以定义指标的时间范围和采样间隔(收集所有指标)。

kubectl cp

通过 kubectl cp 的方式,将采集的信息拷贝到本地。

kubectl port-forward

通过 port-forward 的方式,将 collectinfo controller 的端口映射到本地,将远程 collectinfo controller 的 80 端口映射到本地的 28080 端口

通过 curl 的方式,下载采集的信息

解压下载的文件

详细配置

创建最简单的 yaml,使用默认值采集信息。(完整的配置可以参考)

  1. 部署Alluxio

采集集群信息

kubectl get pod -n alluxio-operator
NAME                                             READY   STATUS    RESTARTS   AGE
alluxio-cluster-controller-8656d54bc-x6ms6       1/1     Running   0          19s
alluxio-collectinfo-controller-cc49c56b6-wlw8k   1/1     Running   0          19s
alluxio-csi-controller-84df9646fd-4d5b8          2/2     Running   0          19s
alluxio-csi-nodeplugin-fcp7b                     2/2     Running   0          19s
alluxio-csi-nodeplugin-t59ch                     2/2     Running   0          19s
alluxio-csi-nodeplugin-vbq2q                     2/2     Running   0          19s
alluxio-ufs-controller-57fbdf8d5c-2f79l          1/1     Running   0          19s
kubectl get pod 
NAME                                          READY   STATUS    RESTARTS   AGE
alluxio-coordinator-0                         1/1     Running   0          2m17s
alluxio-etcd-0                                1/1     Running   0          2m17s
alluxio-etcd-1                                1/1     Running   0          2m17s
alluxio-etcd-2                                1/1     Running   0          2m17s
alluxio-monitor-grafana-9fd587b4f-mnczs       1/1     Running   0          2m17s
alluxio-monitor-prometheus-6b55c568b8-sfp96   1/1     Running   0          2m17s
alluxio-worker-779d87567f-95wls               1/1     Running   0          2m17s
alluxio-worker-779d87567f-sgh4b               1/1     Running   0          2m17s
apiVersion: k8s-operator.alluxio.com/v1
kind: CollectInfo
metadata:
  name: example-collectinfo
spec:
  alluxio:
    namespace: "default"
kubectl apply -f collectinfo.yaml
kubectl get collectinfo
NAME                  COMPLETED   FAILED   STATE       AGE
example-collectinfo   5/5         0/5      Completed   6m16s
kubectl get job -n alluxio-operator
NAME                               COMPLETIONS   DURATION   AGE
example-collectinfo-config-job     1/1           4s         4m10s
example-collectinfo-hardware-job   1/1           5s         4m10s
example-collectinfo-license-job    1/1           10s        4m10s
example-collectinfo-logs-job       1/1           5s         4m10s
example-collectinfo-metrics-job    1/1           4s         4m10s
kubectl get collectinfo
NAME                  COMPLETED   FAILED   STATE    AGE
example-collectinfo   1/5         4/5      Failed   52s
kubectl get job -n alluxio-operator
NAME                               COMPLETIONS   DURATION   AGE
example-collectinfo-config-job     0/1           4m18s      4m18s
example-collectinfo-hardware-job   1/1           5s         4m18s
example-collectinfo-license-job    0/1           4m18s      4m18s
example-collectinfo-logs-job       0/1           4m18s      4m18s
example-collectinfo-metrics-job    0/1           4m18s      4m18s
# 设置环境变量保存collectinfo controller的名字 
COLLECTINFO_CONTROLLER_NAME=$(kubectl get pod -n alluxio-operator -l app.kubernetes.io/component=collectinfo-controller -o jsonpath="{.items[0].metadata.name}")
# 需要填入collectinfo的名字
kubectl cp alluxio-operator/${COLLECTINFO_CONTROLLER_NAME}:/tmp/output/<COLLECTINFO_NAME> output -n alluxio-operator
# 设置环境变量保存collectinfo controller的名字 
CLOLLECTINFO_CONTROLLER_NAME=$(kubectl get pod -n alluxio-operator -l app.kubernetes.io/component=collectinfo-controller -o jsonpath="{.items[0].metadata.name}")
kubectl port-forward -n alluxio-operator ${COLLECTINFO_CONTROLLER_NAME} 28080:80
curl -H "Collectinfo-Name: <COLLECTINFO_NAME>" http://127.0.0.1:28080/download -o output.tar
tar -xvf output.tar
apiVersion: k8s-operator.alluxio.com/v1
kind: CollectInfo
metadata:
  name: example-collectinfo
spec:
  alluxio:
    # alluxio cluster所在的namespace
    namespace: "default"
  # 采集信息类型,包括config, hardware, license, logs, metrics
  # 如果不指定或者指定all,表示采集全部信息
  # 允许指定多个类型:
  # type:
  #   - config
  #   - hardware
  type:
    - all
  # 重试次数,如果采集job失败,会重试指定次数
  backoffLimit: 2
  logs:
    # 采集日志的数量,比如100表示采集最新的100条日志
    tail: 100
  # 指标信息,duration表示采集的时长,step表示采集的间隔
  # 下面的参数示例表示采集从现在到过去2小时内的全部指标(metrics),间隔每分钟采集一次指标(metrics)
  metrics:
    # 采集指标(metrics)的时长,比如2h表示采集从现在到过去2小时内的指标(metrics)
    duration: 2h
    # 采集指标(metrics)的间隔,比如1m表示每分钟采集一次指标(metrics)
    step: 1m
  # 执行采集任务的镜像,默认使用alluxio operator的镜像
  # 可以不指定,使用默认值
  image: "<ALLUXIO_OPERATOR_IMAGE>"
  imagePullPolicy: "Always"
  # 采集信息的资源限制
  resources:
    requests:
      memory: "512Mi"
      cpu: "250m"
    limits:
      memory: "1Gi"
      cpu: "500m"
  • 采集信息
  • 采集信息失败
  • 下载结果
  • kubectl cp
  • kubectl port-forward
  • 详细配置
详细配置