通过 DaemonSet 或 Sidecar 方式采集日志时,均可以通过 LogCollector CRD 方式创建采集配置。本文档介绍在 Kubernetes 集群中安装 LogCollector CRD 的操作步骤。
背景信息
通过 LogCollector CRD 方式创建采集配置时,在 Kubernetes 集群中安装 LogCollector 后,还需安装 LogCollector CRD。LogCollector CRD 安装过程中,主要完成以下步骤:
- 安装 LogCollectorRule CRD。
- 安装 LogCollector Controller。
- 配置 ServiceAccount、ClusterRole 和 ClusterRoleBinding,完成 LogCollector Controller 的认证和授权。
- 创建 LogCollector Controller 的 ConfigMap。
- 创建 LogCollector Controller Deployment。
- 已创建 IAM 用户,获取 Access Key ID、Secret Access Key。并至少为用户授予日志服务(TLS)采集预置策略TLSLogCollectorAccess权限策略,权限详情可参考 IAM 概述。
说明
已安装 Helm 3 客户端(3.7 之后版本)。具体操作,请参考Helm。 1 下载 LogCollector Controller Chart 包
登录待安装 LogCollector Controller 的 Kubernetes 集群,然后根据集群所在地域,执行对应的下载命令,将 LogCollector Controller Chart 安装包下载到指定目录下。
说明
- Region ID:请替换为实际环境对应地域的 ID,如华北2(北京)地域为cn-beijing。支持的地域请参考服务地址列表。
- --version 0.1.0:用于获取 LogCollector Controller chart 的参数,固定值。
- LogCollector 版本:以部署 LogCollector Controller Chart 命令中的image参数对应的 LogCollector 镜像为准,默认获取最新版本 LogCollector。
2 部署 LogCollector Controller Chart 包
执行以下命令部署 LogCollector Controller Chart 包。
其中,region、endpoint、secret_id、secret_key、image为必选参数,详细说明如下。
注意
- 如果报错 Error: INSTALLATION FAILED: Unable to continue with install: CustomResourceDefinition "collectrules.logging.vke.volcengine.com" in namespace、exists and cannot be imported into the current release……,说明已经安装了与 collectrules.logging.vke.volcengine.com 同名的 CustomResourceDefinition,即需要执行 kubectl delete crd collectrules.logging.vke.volcengine.com 命令删除 CustomResourceDefinition。
- 如果报错 Error: INSTALLATION FAILED: Unable to continue with install: ClusterRole "logcollector-controller" in namespace、exists and cannot be imported into the current release……,说明已经安装了与 logcollector-controller 同名的 ClusterRole,即需要执行 kubectl delete clusterrole logcollector-controller 命令先删除 ClusterRole。
- 如果报错 Error: INSTALLATION FAILED: Unable to continue with install: ClusterRoleBinding "logcollector-controller" in namespace、 exists and cannot be imported into the current release……,说明已经安装了与 logcollector-controller 同名的 ClusterRoleBinding,即需要执行 kubectl delete clusterrolebinding logcollector-controller 命令先删除 ClusterRoleBinding。
登录用于安装 LogCollector Controller 的 Kubernetes 集群,然后根据集群地域与网络类型,执行对应的下载命令,将 LogCollector Controller 安装包下载到指定目录下。
下载地址中的 Region ID 请替换为实际环境对应地域的 ID,如华北2(北京)地域为cn-beijing。支持的地域请参考服务地址列表。 2 安装 LogCollector Controller
执行以下命令安装 LogCollector Controller。
其中,region、endpoint、secret_id、secret_key 为必选参数,namepspace、image 为可选参数,详细说明如下。
登录需要安装 LogCollector Controller 的 Kubernetes 集群,然后参考以下步骤以 Deployment 方式部署 LogCollector Controller。
1 创建 LogCollectorRule CRD
LogCollectorRule CRD 是火山引擎日志服务定义的一种 Kubernetes 资源,用于创建 LogCollector 采集配置。
- 登录待安装 LogCollector CRD 的 Kubernetes 集群。
- 创建一个 YAML 文件,用于定义 LogCollectorRule CRD。 本文档以 crd.yaml 为例。
- 编辑 YAML 文件,在 YAML 文件中输入以下内容。
- 执行以下命令,使 CRD 配置生效。文件名请根据实际情况替换。
2 安装 LogCollector Controller
LogCollector Controller 是一种 Kubernetes 控制器,用于监控和维护 Kubernetes 集群中的 LogCollectorRule CR 状态。当 LogCollector Controller 监控到 LogCollectorRule CR 的创建、更新或销毁时,会在日志服务控制台创建、更新或销毁对应的采集配置。
为 LogCollector Controller 创建一个 Namespace。
- 创建一个 YAML 文件,名为 logcollector_controller_ns.yaml。
为 LogCollector Controller 创建一个 ServiceAccount。
- 登录待安装 LogCollector Controller 的 Kubernetes 集群。
- 创建一个 YAML 文件,名为 logcollector_controller_sa.yaml 。
- 编辑 YAML 文件,并在 YAML 文件中输入以下内容。
- 执行以下命令,使配置生效。 文件名请根据实际情况替换
2.3 创建 ClusterRole
为 LogCollector Controller 创建 ClusterRole。
- 登录需要安装 LogCollector Controller 的 Kubernetes 集群。
- 创建一个 YAML 文件,名为 logcollector_controller_cr.yaml 。
- 编辑 YAML 文件,并在 YAML 文件中输入以下内容。
2.4 创建 ClusterRoleBinding
- 登录需要安装 LogCollector Controller 的 Kubernetes 集群。
- 创建一个 YAML 文件,名为 logcollector_controller_crb.yaml 。
- 编辑 YAML 文件,并在 YAML 文件中输入以下内容。
创建一个 LogCollector Controller 的 ConfigMap。
- 登录需待安装 LogCollector Controller 的 Kubernetes 集群。
- 创建一个 YAML 文件,名为 logcollector_controller_config.yaml。
- 编辑 YAML 文件,并在 YAML 文件中输入以下内容。
- 执行以下命令,使 ConfigMap 配置生效。
2.6 创建 Deployment
为 LogCollector Controller 创建一个 Deployment。
- 登录需要安装 LogCollector Controller 的 Kubernetes 集群。
- 创建一个 YAML 文件,名为 logcollector_controller_ds.yaml 。
- 编辑 YAML 文件,并在 YAML 文件中输入以下内容。
LogCollector Controller 镜像地址
日志服务在各个区域提供的最新版本 LogCollector Controller 镜像地址如下:
镜像地址中的 Region ID 请替换为实际环境对应地域的 ID,如华北2(北京)地域为cn-beijing。支持的地域请参考服务地址列表。