最近更新时间:2023.12.18 18:48:39
首次发布时间:2023.10.13 14:01:11
通过 DaemonSet 或 Sidecar 方式采集日志时,均可以通过 LogCollector CRD 方式创建采集配置。本文档介绍在 Kubernetes 集群中安装 LogCollector CRD 的操作步骤。
如果选择通过 LogCollector CRD 方式创建采集配置,应在 Kubernetes 集群中安装 LogCollector 组件后,安装 LogCollector CRD。安装流程分为以下步骤:
LogCollectorRule CRD 是火山引擎日志服务定义的一种 Kubernetes 资源,用于创建 LogCollector 的采集配置。
登录需要安装 LogCollector CRD 的 Kubernetes 集群。
创建一个 YAML 文件,用于定义 LogCollectorRule CRD。 本文档以 crd.yaml
为例进行演示。
vim crd.yaml
编辑 YAML 文件,在 YAML 文件中输入以下内容。
apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: name: collectrules.logging.vke.volcengine.com spec: group: logging.vke.volcengine.com names: kind: CollectRule listKind: CollectRuleList plural: collectrules singular: collectrule shortNames: - cr scope: Cluster versions: - name: v1alpha1 served: true storage: true subresources: status: { } schema: openAPIV3Schema: type: object properties: spec: x-kubernetes-preserve-unknown-fields: true status: x-kubernetes-preserve-unknown-fields: true conversion: strategy: None
执行以下命令,使 crd.yaml
文件配置生效。 其中,crd.yaml
为文件名,请根据实际情况替换。
kubectl apply -f crd.yaml
LogCollector Controller 是一种 Kubernetes 控制器,用于监控和维护 Kubernetes 集群中的 LogCollectorRule CR 状态。当 LogCollector Controller 监控到 LogCollectorRule CR 的创建、更新或销毁时,会在日志服务控制台创建、更新或销毁对应的采集配置。
此步骤会创建一个 LogCollector Controller 的 ConfigMap,并在其中添加日志服务的配置信息。
登录需要安装 LogCollector Controller 的 Kubernetes 集群。
创建一个 YAML 文件,本文档以 config.yaml
为例进行演示。
vim config.yaml
编辑 YAML 文件,并在 YAML 文件中输入以下内容。
apiVersion: v1 kind: ConfigMap metadata: name: logcollector-controller-configuration namespace: kube-system data: region: cn-beijing endpoint: https://tls-cn-beijing.ivolces.com secret_id: AK******** secret_key: TUdZ********
参数 | 是否必选 | 示例 | 说明 |
---|---|---|---|
region | 必选 | cn-beijing | 日志项目所在的地域(Region)。 日志服务地域及对应 ID 请参考服务入口。 |
endpoint | 必选 | https://tls-cn-beijing.ivolces.com | 日志服务连接域名,即服务地址。 登录日志服务控制台后,在日志项目的详情页中查看连接域名。日志服务支持的地域及对应服务地址请参考服务入口。 |
secret_id | 必选 | AK******** | 火山引擎主账号或子账号的 Access Key ID。 在火山引擎控制台密钥管理页面,根据页面提示查看并复制 Access Key ID。 |
secret_key | 必选 | TUdZ******** | 火山引擎主账号或子账号的 Secret Access Key。 在火山引擎控制台密钥管理页面,根据页面提示查看并复制 Secret Access Key。 |
执行以下命令,使 config.yaml
文件配置生效。 其中,config.yaml
为文件名,请根据实际情况替换。
kubectl apply -f config.yaml
为 LogCollector Controller 创建一个 ServiceAccount,并配置基本的身份信息。
登录需要安装 LogCollector Controller 的 Kubernetes 集群。
创建一个 YAML 文件,本文档以 service_account.yaml
为例进行演示。
vim service_account.yaml
编辑 YAML 文件,并在 YAML 文件中输入以下内容。
apiVersion: v1 kind: ServiceAccount metadata: name: logcollector-controller namespace: kube-system labels: k8s-app: logcollector-controller
执行以下命令,使 service_account.yaml
文件配置生效。 其中,service_account.yaml
为文件名,请根据实际情况替换。
kubectl apply -f service_account.yaml
为 LogCollector Controller 创建 ClusterRole。
登录需要安装 LogCollector Controller 的 Kubernetes 集群。
创建一个 YAML 文件。 本文档以 cluster_role.yaml
为例进行演示。
vim cluster_role.yaml
编辑 YAML 文件,并在 YAML 文件中输入以下内容。
apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: logcollector-controller labels: k8s-app: logcollector-controller rules: - apiGroups: ["logging.vke.volcengine.com"] resources: - collectrules verbs: - create - delete - get - list - patch - update - watch - apiGroups: ["logging.vke.volcengine.com"] resources: - collectrules/status verbs: - get - patch - update - apiGroups: ["logging.vke.volcengine.com"] resources: - collectrules/finalizers verbs: - update - apiGroups: [""] resources: - configmaps verbs: - create - update - get - apiGroups: [""] resources: - events verbs: - create - patch - update
执行以下命令,使 cluster_role.yaml
文件配置生效。 其中,cluster_role.yaml
为文件名,请根据实际情况替换。
kubectl apply -f cluster_role.yaml
登录需要安装 LogCollector Controller 的 Kubernetes 集群。
创建一个 YAML 文件。 本文档以 cluster_role_binding.yaml
为例进行演示。
vim cluster_role_binding.yaml
编辑 YAML 文件,并在 YAML 文件中输入以下内容。
apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: logcollector-controller subjects: - kind: ServiceAccount name: logcollector-controller namespace: kube-system roleRef: kind: ClusterRole name: logcollector-controller apiGroup: rbac.authorization.k8s.io
执行以下命令,使 cluster_role_binding.yaml
文件配置生效。 其中,cluster_role_binding.yaml
为文件名,请根据实际情况替换。
kubectl apply -f cluster_role_binding.yaml
登录需要安装 LogCollector Controller 的 Kubernetes 集群。
创建一个 YAML 文件。deploy.yaml
为文件名,请根据实际情况替换。
vim deploy.yaml
编辑 YAML 文件,并在 YAML 文件中输入以下内容。
其中,image 字段应指定为当前地域下 LogCollector Controller 镜像地址。各个地域的镜像地址列表请参考LogCollector 镜像地址。
apiVersion: apps/v1 kind: Deployment metadata: name: logcollector-controller namespace: kube-system labels: k8s-app: logcollector-controller kubernetes.io/cluster-service: "true" spec: selector: matchLabels: k8s-app: logcollector-controller replicas: 1 template: metadata: labels: k8s-app: logcollector-controller name: logcollector-controller spec: serviceAccountName: logcollector-controller containers: - name: logcollector-controller # 请按照业务所在的region修改对应的镜像地址,各个地域的镜像地址列表请参考下表 image: logcollector-cn-beijing.cr.volces.com/logcollector-controller/logcollector-controller:latest resources: limits: cpu: 400m memory: 400Mi requests: cpu: 100m memory: 100Mi env: - name: "TLS_REGION" valueFrom: configMapKeyRef: name: logcollector-controller-configuration key: region - name: "TLS_HOST" valueFrom: configMapKeyRef: name: logcollector-controller-configuration key: endpoint - name: "VOLC_ACCESSKEY" valueFrom: configMapKeyRef: name: logcollector-controller-configuration key: secret_id - name: "VOLC_SECRETKEY" valueFrom: configMapKeyRef: name: logcollector-controller-configuration key: secret_key
日志服务在各个区域提供的最新版本 LogCollector 镜像地址如下:
地域 | 镜像地址 |
---|---|
华北2(北京) |
|
华东2(上海) |
|
华南1(广州) |
|