迁移全栈监控Kubernetes资源

在云原生时代,Logs、Trace、Metrics也变得融合,全栈监控(全栈可观测)利用SLS云原生采集器iLogtail能力通过一套架构解决云原生下复杂的可观测数据迁移问题。

背景

iLogtail 历史部署版本分为Log模型与Metrics 模型,Log模型和Metrics 模型分别部署于logtail-ds/kube-systemlogtail-node-monitoring-ds/sls-monitoring2个Daemonset,此外Metrics 模型还包含Statefulset等其他资源。

前提条件

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

新部署架构

Kubernetes iLogtai包括Ds(Daemonset)形态、Sts(Statefulset)形态、以及Singleton3种部署形态。

  • Ds形态主要负责节点可观测数据的采集,如节点日志、容器日志、主机指标、进程指标、Kubelet 指标等。

  • Sts形态主要负责集群可观测数据的采集,此模式下iLogtail同时支持Pull&Push两种工作模型,Pull模式下iLogtail可以代替Prometheus 拉取集群内的Prometheus Exporter 数据。Push 模式下,iLogtail 可以接收可观测数据的输入,如接收基于Pyroscope的Profiling 数据,接收OpenTelemetry 协议数据。

  • Singleton形态主要负责采集全局性可观测数据,如采集MySQL、PG、Clickhouse、Elasticsearch 等数据库指标。

image.png

迁移历史版本全栈监控资源

  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-migrate-tool  --help命令验证工具是否安装成功,当存在返回值时,说明工具安装成功。

  4. 校验当前集群是否可以迁移,校验信息保存为sls-check-info.json

    ./sls-crd-migrate-tool check
  5. 如果校验通过,请使用以下命令查找待迁移资源,待迁移信息保存为sls-history-crd-infos.json

    ./sls-crd-migrate-tool list
  6. 迁移资源。

    ./sls-crd-migrate-tool migrate
  7. 校验迁移完成。

    重新执行第5步与第6步,提示无迁移资源,表示迁移完成。

  8. 迁移完成后,清除历史版本全栈监控资源。

    历史CRD默认空间存在于sls-monitoring命名空间,上述迁移操作不会移动CRD命名空间位置,因此请按照以下操作进行删除。

    kubectl delete ds logtail-node-monitoring-ds -n sls-monitoring
    kubectl delete sts logtail-kubernetes-metrics -n sls-monitoring
    kubectl delete deploy kube-state-metrics -n sls-monitoring