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
  • 采集信息
  • 采集信息失败
  • 下载结果
  • kubectl cp
  • kubectl port-forward
  • 详细配置
  1. 部署Alluxio

采集集群信息

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

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

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

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

采集信息

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

apiVersion: k8s-operator.alluxio.com/v1
kind: CollectInfo
metadata:
  name: example-collectinfo
spec:
  alluxio:
    namespace: "default"

创建 collectinfo ,开始采集信息。

kubectl apply -f collectinfo.yaml

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

kubectl get collectinfo
NAME                  COMPLETED   FAILED   STATE       AGE
example-collectinfo   5/5         0/5      Completed   6m16s

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

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

采集信息失败

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

kubectl get collectinfo
NAME                  COMPLETED   FAILED   STATE    AGE
example-collectinfo   1/5         4/5      Failed   52s

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

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 操作是成功还是失败,您都可以下载收集结果。

如果存在任何失败,结果中将包含 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 的方式,将采集的信息拷贝到本地。

# 设置环境变量保存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

kubectl port-forward

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

# 设置环境变量保存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 的方式,下载采集的信息

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"

Last updated 4 months ago

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

详细配置