文档

内置CRD模板工具

更新时间:

内置CRD(custom resource definition)模板工具内置了一系列采集能力,通过此工具,可以快速集成标准化采集能力并通过CRD管理采集配置的生命周期,避免控制台配置繁琐步骤。

前提条件

采集Kubernetes集群内Logs、Metrics、Trace数据,需要先安装Logtail组件。Logtail组件安装方式请参见:

安装CRD 模板工具

操作方式

描述

集群外安装

集群外部安装要求登录账户存在~/.kube/config配置文件(可以使用kubectl命令),且配置文件具有目标集群操作权限。

集群内安装

容器内安装基于已安装组件alibaba-log-controller权限操作CRD 创建,适用于无~/.kube/config配置文件或网络问题无法连接时进行操作

集群外安装

  1. 登录集群,下载模板工具。

    • 中国地区

      curl https://logtail-release-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/kubernetes/crd-tool.tar.gz -o /tmp/crd-tool.tar.gz
    • 海外地区

      curl https://logtail-release-ap-southeast-1.oss-ap-southeast-1.aliyuncs.com/kubernetes/crd-tool.tar.gz -o /tmp/crd-tool.tar.gz
  2. 安装模板工具,安装成功后会在当前文件夹生成sls-crd-tool工具。

    tar -xvf /tmp/crd-tool.tar.gz -C /tmp &&chmod 755 /tmp/crd-tool/install.sh  && sh -x  /tmp/crd-tool/install.sh
  3. 执行./sls-crd-tool list命令验证工具是否安装成功,当存在返回值时,说明工具安装成功。

容器内安装

  1. 登录集群,进入alibaba-log-controller容器。

    kubectl get pods -n kube-system -o wide |grep alibaba-log-controller | awk -F ' ' '{print $1}'
    kubectl exec -it {pod} -n kube-system bash
    cd ~
  2. 下载模板工具。

    • 如集群内可以下载公网资源,操作方法如下:

      • 中国地区

        curl https://logtail-release-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/kubernetes/crd-tool.tar.gz -o /tmp/crd-tool.tar.gz
      • 海外地区

        curl https://logtail-release-ap-southeast-1.oss-ap-southeast-1.aliyuncs.com/kubernetes/crd-tool.tar.gz -o /tmp/crd-tool.tar.gz
    • 如集群内无法下载公网资源,可以集群外下载,使用kubectl cp <source> <destination>或者ACK上传等功能将模板工具传输至上述容器。

  3. 安装模板工具,安装成功后会在当前文件夹生成sls-crd-tool工具。

    tar -xvf /tmp/crd-tool.tar.gz -C /tmp &&chmod 755 /tmp/crd-tool/install.sh  && sh -x  /tmp/crd-tool/install.sh
  4. 执行./sls-crd-tool list命令验证工具是否安装成功,当存在返回值时,说明工具安装成功。

使用模板工具创建采集配置

指令构成

./sls-crd-tool <全局参数> <操作指令> <指令参数>

全局参数

参数

功能

--version或-v

查看工具版本。

--help或-h

查看工具帮助文档。

--kubepath path或-k path

指定kube config地址,仅集群外操作生效,默认参数为 ~/.kube/config

--inner或-i

集群内操作为在组件alibaba-log-controlle的容器内操作(此容器具有操作aliyunlogconfigs CRD的权限)。如果无机器存在kube config操作权限,推荐容器内安装并操作。默认参数为false。

--language language或-l language

支持zh(中文) 或en(英文) 参数,默认参数为zh。

操作指令

  • list

    • 功能:查看内置模板列表

    • 指令:

      ./sls-crd-tool list
    • 样例:

      ./sls-crd-tool -l en list

      image.png

  • get

    • 功能:下载模板配置, 模板配置文件将保存为template-<NAME.yaml>文件。

    • 指令:

      ./sls-crd-tool get

    • 指令参数:

      • --help或-h:查看当前指令文档。

      • --gen或-g:生成模板文件,默认参数为true。

      • --output value或-o value输出文件格式,支持JSON和yaml,默认参数为yaml。

    • 样例:

      • 下载模板配置文件

        ./sls-crd-tool -l en get autometrics

        image.png

      • 查看模板配置文件

        cat template-autometrics.yaml

        image.png

      • 修改模板配置文件,请参考下表:

        可修改的模板参数分为2种,如下所述,REQUIRED字段为必填字段,auto字段可以按实际需求修改。

        参数类型

        说明

        auto

        支持自动填充,具体填充参数为安装指令时设置,目前支持自动填充的值:ClusterID、MachineGroup、NameSpace、Project。

        重要

        MachineGroup请保持auto 参数,模板会自动根据工作模型自动选择正确机器组,避免因错误机器组导致的采集重复等问题。

        REQUIRED

        REQUIRED 参数为当前CRD 模板必须填写的参数,请配置为使用场景参数值。

  • apply

    • 功能: 应用模板配置,创建真实aliyunlogconfigs CRD 资源。

    • 指令:

      ./sls-crd-tool apply -f <FILE>
    • 指令参数:

      • --file value或-f value : get指令生成的模板文件路径。

      • --create或-c :创建真实aliyunlogconfigs CRD资源,默认参数为true。

      • --namespace value或-n value:选择组件空间,当集群安装多个Logtail组件时生效,默认参数为空。

      • --help或-h : 查看当前指令文档。

    • 样例:

      • 验证参数合法性

        说明

        当前模板配置文件中含有REQUIRED参数未填充。

        ./sls-crd-tool apply -f template-autometrics.yaml --caeate=false -n alibabacloud-sls-new

        image.png

      • 创建真实aliyunlogconfigsCRD资源

        ./sls-crd-tool apply -f template-autometrics.yaml -n alibabacloud-sls-new

        image.png

        kubectl get aliyunlogconfigs.log.alibabacloud.com -n alibabacloud-sls-new

        image.png