内置CRD(custom resource definition)模板工具内置了一系列采集能力,通过此工具,可以快速集成标准化采集能力并通过CRD管理采集配置的生命周期,避免控制台配置繁琐步骤。
前提条件
采集Kubernetes集群内Logs、Metrics、Trace数据,需要先安装Logtail组件。Logtail组件安装方式请参见:
-
支持的Logtail组件版本: 1.7.3版本及以上,查看Logtail版本,请参见查看Logtail版本,升级Logtail版本,请参见升级Logtail。
-
支持的Logtail组件版本:V2及以上,查看Logtail版本,请参见查看Logtail版本,升级Logtail版本,请参见升级Logtail。
安装CRD 模板工具
|
操作方式 |
描述 |
|
集群外安装 |
集群外部安装要求登录账户存在 |
|
集群内安装 |
容器内安装基于已安装组件 |
集群外安装
-
登录集群,下载模板工具。
-
中国地区
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
-
-
安装模板工具,安装成功后会在当前文件夹生成
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 -
执行
./sls-crd-tool list命令验证工具是否安装成功,当存在返回值时,说明工具安装成功。
容器内安装
-
登录集群,进入
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 ~ -
下载模板工具。
-
如集群内可以下载公网资源,操作方法如下:
-
中国地区
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上传等功能将模板工具传输至上述容器。
-
-
安装模板工具,安装成功后会在当前文件夹生成
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 -
执行
./sls-crd-tool list命令验证工具是否安装成功,当存在返回值时,说明工具安装成功。
使用模板工具创建采集配置
指令构成
./sls-crd-tool <全局参数> <操作指令> <指令参数>
全局参数
|
参数 |
功能 |
|
--version或-v |
查看工具版本。 |
|
--help或-h |
查看工具帮助文档。 |
|
--kubepath path或-k path |
指定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$./sls-crd-tool -l en list +---------------------+------------------------+---------------------------------------------------------------------------------+ | Name | Generated CRD Number | Description | +---------------------+------------------------+---------------------------------------------------------------------------------+ | autometrics | 1 | auto collect pod metrics with `prometheus.io.scrape:true` flag | | nodemetrics | 2 | auto collect node metrics (kubemetrics already includes this feature) | | kubemetrics | 5 | auto collect kubernetes metrics, including node, kubelet, apiserver and other metrics. | | skywalking-v2-trace | 1 | supports receiving skywalking v2 data. The default port is 21800. | | skywalking-v3-trace | 1 | supports receiving skywalking v3 data. The default port is 21800. | +---------------------+------------------------+---------------------------------------------------------------------------------+
-
-
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$./sls-crd-tool -l en get autometrics name: autometrics parameter: # Auto bind installed MachineGroup, don't edit it. MachineGroup: auto InstanceID: <REQUIRED> # Auto means use default namespace. NameSpace: auto # Auto means use default project. Project: auto # Auto means use default cluster id. ClusterID: auto Modify the content of the template file template-autometrics.yaml and fill in the required parameters. For example, if the parameter is auto, you can use `< command> apply -f template-autometrics.yaml --create=false` to preview the default parameter output -
查看模板配置文件
cat template-autometrics.yaml$cat template-autometrics.yaml name: autometrics parameter: # Auto bind installed MachineGroup, don't edit it. MachineGroup: auto InstanceID: <REQUIRED> # Auto means use default namespace. NameSpace: auto # Auto means use default project. Project: auto # Auto means use default cluster id. ClusterID: auto -
修改模板配置文件,请参考下表:
可修改的模板参数分为2种,如下所述,REQUIRED字段为必填字段,auto字段可以按实际需求修改。
参数类型
说明
auto
支持自动填充,具体填充参数为安装指令时设置,目前支持自动填充的值:ClusterID、MachineGroup、NameSpace、Project。
重要MachineGroup请保持auto 参数,模板会自动根据工作模型自动选择正确机器组,避免因错误机器组导致的采集重复等问题。
REQUIRED
REQUIRED 参数为当前CRD 模板必须填写的参数,请配置为使用场景参数值。
-
-
-
apply
-
功能: 应用模板配置,创建真实
aliyunlogconfigsCRD 资源。 -
指令:
./sls-crd-tool apply -f <FILE> -
指令参数:
-
--file value或-f value : get指令生成的模板文件路径。
-
--create或-c :创建真实
aliyunlogconfigsCRD资源,默认参数为true。 -
--namespace value或-n value:选择组件空间,当集群安装多个Logtail组件时生效,默认参数为空。
-
--help或-h : 查看当前指令文档。
-
-
样例:
-
验证参数合法性
说明当前模板配置文件中含有REQUIRED参数未填充。
./sls-crd-tool apply -f template-autometrics.yaml --caeate=false -n alibabacloud-sls-new./sls-crd-tool apply -f template-autometrics.yaml --create=false -n alibabacloud-sls-new name: autometrics parameter: ClusterID: custom-cluster-ljp InstanceID: <REQUIRED> MachineGroup: k8s-group-custom-cluster-ljp NameSpace: alibabacloud-sls-new Project: k8s-log-c4551a67027d248bfb049765de783e647 -
创建真实
aliyunlogconfigsCRD资源./sls-crd-tool apply -f template-autometrics.yaml -n alibabacloud-sls-new~ ./sls-crd-tool apply -f template-autometrics.yaml -n alibabacloud-sls-new name: autometrics parameter: ClusterID: custom-cluster-ljp InstanceID: sls-mall MachineGroup: k8s-group-custom-cluster-ljp NameSpace: alibabacloud-sls-new Project: k8s-log-c4551a67027d248bfb049765de783e647 Successkubectl get aliyunlogconfigs.log.alibabacloud.com -n alibabacloud-sls-new执行成功后,可在返回结果中看到新创建的
sls-mall-k8s-auto-metrics资源。NAME AGE sls-mall-k8s-auto-metrics 47s sls-mall-skywalking-v2-receiver 111m taiye-instance-id-k8s-auto-metrics 155m
-
-