通过 DaemonSet 或 Sidecar 方式采集日志时,均可以通过 LogCollector CRD 方式创建采集配置。本文档介绍在 Kubernetes 集群中安装 LogCollector CRD 的操作步骤。
选择通过 LogCollector CRD 方式创建采集配置时,需在 Kubernetes 集群中安装 LogCollector 后,再安装 LogCollector CRD。其中,手动安装分为以下步骤:
已在 Kubernetes 集群中安装 LogCollector。详细操作步骤请参考安装 LogCollector(DaemonSet 方式)、安装 LogCollector(Sidecar 方式)。
登录待安装 LogCollector CRD 的 Kubernetes 集群,然后根据地域与网络类型,执行对应的下载命令,将 LogCollector CRD 安装包下载到指定目录下。
wget https://logcollector-cn-guangzhou.tos-cn-guangzhou.ivolces.com/logcollector-crd.tgz; tar xvf logcollector-crd.tgz; chmod 744 ./logcollector-crd/logcollector-crd-install.sh
wget https://logcollector-cn-guangzhou.tos-cn-guangzhou.volces.com/logcollector-crd.tgz; tar xvf logcollector-crd.tgz; chmod 744 ./logcollector-crd/logcollector-crd-install.sh
打开配置文件logcollector-crd/values.yaml
。
根据实际情况替换其中的参数。
# =================TLS Common Config================= # TLS's endpoint: https://www.volcengine.com/docs/6470/73641, eg https://tls-cn-beijing.volces.com endpoint: https://tls-cn-beijing.volces.com # TLS's region-ID: cn-beijing, cn-shanghai, cn-guangzhou region: cn-beijing # =================TLS Authority Config================= # https://www.volcengine.com/docs/6291/65568 # Access Key ID secret_id: XXXXXXXXXXBcFk4C8sbmXQ8i65XXXXXXXXXX #Secret Access Key secret_key: XXXXXXXXXX4tX5SHyXv6tZXXXXXXXXXX # =================LogCollector Controller Config================= # logcollector-controller's image address, see https://www.volcengine.com/docs/6470/109796 # if you don't make sure, you can comment or delete this. This shell will find it by region. logcollector-controller-image: logcollector-cn-beijing.cr.volces.com/logcollector-controller/logcollector-controller:latest
参数说明如下:
参数 | 示例 | 说明 |
---|---|---|
endpoint | https://tls-cn-beijing.volces.com | |
region | cn-beijing | 日志项目所在的地域 ID。详细说明请参考服务地址。 |
secret_id | AK******** | 火山引擎账号或 IAM 用户的 Access Key ID。 |
secret_key | TUdZ******** | 火山引擎账号或 IAM 用户的 Secret Access Key。 |
logcollector-controller-image | logcollector-cn-beijing.cr.volces.com/logcollector-controller/logcollector-controller:latest | LogCollector Controller的镜像地址。最新版本镜像地址请参考 LogCollector Controller 镜像地址。 |
执行如下命令,安装 LogCollector CRD。
cd logcollector-crd bash logcollector-crd-install.sh;
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 | 日志项目所在的地域。 日志服务地域及对应 ID 请参考服务入口。 |
endpoint | 必选 | https://tls-cn-beijing.ivolces.com | |
secret_id | 必选 | AK******** | 火山引擎账号或 IAM 用户的 Access Key ID。 |
secret_key | 必选 | TUdZ******** | 火山引擎主账号或 IAM 的 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 - secrets verbs: - create - update - get - list - watch - apiGroups: [""] resources: - events verbs: - create - patch - update - apiGroups: [""] resources: - pods - nodes - namespaces verbs: - get - list - watch - apiGroups: ["apps"] resources: - replicasets - deployments - daemonsets - statefulsets verbs: - watch - list - get - apiGroups: ["batch"] resources: - jobs - cronjobs verbs: - watch - list - get
执行以下命令,使 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 文件中输入以下内容。
说明
- name: "ENABLE_POD_ENV" value: "true"
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
执行以下命令,使 deploy.yaml
文件配置生效。
其中,deploy.yaml
为文件名,请根据实际情况替换。
kubectl apply -f deploy.yaml
日志服务在各个区域提供的最新版本 LogCollector Controller 镜像地址如下:
地域 | 镜像地址 |
---|---|
华北2(北京) |
|
华东2(上海) |
|
华南1(广州) |
|
柔佛(亚太东南) |
|