新浪云服务器价格 一、背景与挑战 华为云 CCE 提供了云原生日志采集插件,采集了包含 CCE 集群以及弹性到 CCI 的实例的容器内日志,但对观测云来讲,观测云可以基于 DataKi···
新浪云服务器价格
一、背景与挑战
华为云 CCE 提供了云原生日志采集插件,采集了包含 CCE 集群以及弹性到 CCI 的实例的容器内日志,但对观测云来讲,观测云可以基于 DataKit Operator 以及提供一个 DataKit 的 DaemonSet 部署来实现 CCE 各节点的容器内的日志文件采集,但针对于对于 CCI 的这种 serverless 的容器内日志采集,观测云采集思路包含:
通过观测云的 logforward 的 sidecar 部署来实现日志转发给观测云,这种方式消耗大量的资源,并且要对原有的 CCE 的 Deployment 进行改造注入。使用 lambda 函数将 LTS 采集的 OBS 的日志上报到观测云,因 CCE 的同一 Deployment 弹性到 CCI,这种方式基于 OBS 区分不出哪些是 CCI 的日志,哪些是 CCE 的日志。华为云 CCE 云原生日志采集插件中包含了 Otel Collector 组件,通过改造 Otel Collector 的 exporter 配置实现 CCI 日志的导出,这种方式减少了日志接入的成本,避免了资源额外消耗的成本,即本篇重点阐述的最佳实践。二、前置条件
DataKit:观测云的采集组件,负责 CCE 日志采集与接收 Otel Collector 的 CCI 日志收集导出。观测云:统一日志检索、查询分析、仪表盘展示、智能告警等。云原生日志采集插件:负责 CCE 日志和 CCI 日志的采集,插件版本要求 1.5.1 版本以上,插件说明如下。业务场景环境:华为 CCE 调度到 CCI 场景。三、采集流程
代码部署到云服务器
华为云 CCE 集群容器内日志通过观测云标准方案 DataKit Operator 的方式采集,而弹性到 CCI 的日志通过云原生插件采集 Otel Collector 并导出到观测云 DataKit 服务,最终展示在观测云控制台,如下流程图:
四、配置步骤
步骤 1:CCE 集群弹性到 CCI Demo 搭建
请自行创建 CCE 集群,并创建应用,测试可强制调度到 CCI,如下图:sp-demo2.yaml
阿里云 域名服务器
kind: DeploymentapiVersion: apps/v1metadata:name:sp-demo2namespace:defaultuid:403dd3e0-8591-44d8-bd7f-0c8585acb26dresourceVersion:295573generation:1creationTimestamp:2025-09-12T12:15:48Zlabels:appgroup:version:v1virtual-kubelet.io/burst-to-cci:enforceannotations:deployment.kubernetes.io/revision:1description:kubectl.kubernetes.io/last-applied-configuration:>{"apiVersion":"apps/v1","kind":"Deployment","metadata":{"annotations":{"deployment.kubernetes.io/revision":"5","description":"","workload.cce.io/swr-version":"[{"version":"PrivateEdition"}]"},"labels":{"appgroup":"","version":"v1","virtual-kubelet.io/burst-to-cci":"enforce"},"name":"sp-demo2","namespace":"default"},"spec":{"progressDeadlineSeconds":600,"replicas":1,"revisionHistoryLimit":10,"selector":{"matchLabels":{"app":"sp-demo2","version":"v1"}},"strategy":{"rollingUpdate":{"maxSurge":"25%","maxUnavailable":"25%"},"type":"RollingUpdate"},"template":{"metadata":{"labels":{"app":"sp-demo2","version":"v1"}},"spec":{"containers":[{"env":[{"name":"PAAS_APP_NAME","value":"sp-demo2"},{"name":"PAAS_NAMESPACE","value":"default"},{"name":"PAAS_PROJECT_ID","value":"bacc65fb662f435dab3acda49acae0c9"}],"image":"swr.cn-north-4.myhuaweicloud.com/liurui_bj/springboot-server:openj8","imagePullPolicy":"IfNotPresent","name":"container-1","resources":{"limits":{"cpu":"250m","memory":"512Mi"},"requests":{"cpu":"250m","memory":"512Mi"}},"terminationMessagePath":"/dev/termination-log","terminationMessagePolicy":"File"}],"dnsPolicy":"ClusterFirst","imagePullSecrets":[{"name":"default-secret"}],"restartPolicy":"Always","schedulerName":"default-scheduler","securityContext":{},"terminationGracePeriodSeconds":30,"tolerations":[{"effect":"NoExecute","key":"node.kubernetes.io/not-ready","operator":"Exists","tolerationSeconds":300},{"effect":"NoExecute","key":"node.kubernetes.io/unreachable","operator":"Exists","tolerationSeconds":300}]}}}}workload.cce.io/swr-version:[{"version":"Private Edition"}]managedFields:-manager:kubectl-client-side-applyoperation:UpdateapiVersion:apps/v1time:2025-09-12T12:15:48ZfieldsType:FieldsV1fieldsV1:f:metadata:f:annotations:.:{}f:description:{}f:kubectl.kubernetes.io/last-applied-configuration:{}f:workload.cce.io/swr-version:{}f:labels:.:{}f:appgroup:{}f:version:{}f:virtual-kubelet.io/burst-to-cci:{}f:spec:f:progressDeadlineSeconds:{}f:replicas:{}f:revisionHistoryLimit:{}f:selector:{}f:strategy:f:rollingUpdate:.:{}f:maxSurge:{}f:maxUnavailable:{}f:type:{}f:template:f:metadata:f:labels:.:{}f:app:{}f:version:{}f:spec:f:containers:k:{"name":"container-1"}:.:{}f:env:.:{}k:{"name":"PAAS_APP_NAME"}:.:{}f:name:{}f:value:{}k:{"name":"PAAS_NAMESPACE"}:.:{}f:name:{}f:value:{}k:{"name":"PAAS_PROJECT_ID"}:.:{}f:name:{}f:value:{}f:image:{}f:imagePullPolicy:{}f:name:{}f:resources:.:{}f:limits:.:{}f:cpu:{}f:memory:{}f:requests:.:{}f:cpu:{}f:memory:{}f:terminationMessagePath:{}f:terminationMessagePolicy:{}f:dnsPolicy:{}f:imagePullSecrets:.:{}k:{"name":"default-secret"}:{}f:restartPolicy:{}f:schedulerName:{}f:securityContext:{}f:terminationGracePeriodSeconds:{}f:tolerations:{}-manager:kube-controller-manageroperation:UpdateapiVersion:apps/v1time:2025-09-12T12:16:19ZfieldsType:FieldsV1fieldsV1:f:metadata:f:annotations:f:deployment.kubernetes.io/revision:{}f:status:f:availableReplicas:{}f:conditions:.:{}k:{"type":"Available"}:.:{}f:lastTransitionTime:{}f:lastUpdateTime:{}f:message:{}f:reason:{}f:status:{}f:type:{}k:{"type":"Progressing"}:.:{}f:lastTransitionTime:{}f:lastUpdateTime:{}f:message:{}f:reason:{}f:status:{}f:type:{}f:observedGeneration:{}f:readyReplicas:{}f:replicas:{}f:updatedReplicas:{}subresource:statusspec:replicas:1selector:matchLabels:app:sp-demo2version:v1template:metadata:creationTimestamp:nulllabels:app:sp-demo2version:v1spec:containers:-name:container-1image:swr.cn-north-4.myhuaweicloud.com/liurui_bj/springboot-server:openj8env:-name:PAAS_APP_NAMEvalue:sp-demo2-name:PAAS_NAMESPACEvalue:default-name:PAAS_PROJECT_IDvalue:bacc65fb662f435dab3acda49acae0c9resources:limits:cpu:250mmemory:512Mirequests:cpu:250mmemory:512MiterminationMessagePath:/dev/termination-logterminationMessagePolicy:FileimagePullPolicy:IfNotPresentrestartPolicy:AlwaysterminationGracePeriodSeconds:30dnsPolicy:ClusterFirstsecurityContext:{}imagePullSecrets:-name:default-secretschedulerName:default-schedulertolerations:-key:node.kubernetes.io/not-readyoperator:Existseffect:NoExecutetolerationSeconds:300-key:node.kubernetes.io/unreachableoperator:Existseffect:NoExecutetolerationSeconds:300strategy:type:RollingUpdaterollingUpdate:maxUnavailable:25%maxSurge:25%revisionHistoryLimit:10progressDeadlineSeconds:600status:observedGeneration:1replicas:1updatedReplicas:1readyReplicas:1availableReplicas:1conditions:-type:Availablestatus:TruelastUpdateTime:2025-09-12T12:16:19ZlastTransitionTime:2025-09-12T12:16:19Zreason:MinimumReplicasAvailablemessage:Deploymenthasminimumavailability.-type:Progressingstatus:TruelastUpdateTime:2025-09-12T12:16:19ZlastTransitionTime:2025-09-12T12:15:48Zreason:NewReplicaSetAvailablemessage:ReplicaSet"sp-demo2-7d9cd96c44"hassuccessfullyprogressed.查看 CCI 节点运行的 pod :本次要采集的 CCI 容器内日志为 server.log,目录如下:步骤 2:在 CCE 安装云原生日志采集插件
在 CCE 插件中心安装云原生日志采集插件,实例规格自定义配置在日志中心创建 CCI 日志采集策略华为云 LTS 日志采集展示步骤 3:在 CCE 集群部署 DataKit
通过 kubectl apply -f datakit.yaml 命令实现在华为云 CCE 的的一个 Daemonset 部署,采集器要开启 opentelemetry 采集器,并通过亲和性设置不让 DataKit 调度到虚拟节点datakit.yaml
kind:DaemonSetapiVersion:apps/v1metadata:name:datakitnamespace:datakituid:122c1472-03cd-4ec6-a684-0384e40b011cresourceVersion:5351437generation:2creationTimestamp:2025-09-16T10:45:45Zlabels:app:daemonset-datakitannotations:deprecated.daemonset.template.generation:2kubectl.kubernetes.io/last-applied-configuration:> {"apiVersion":"apps/v1","kind":"DaemonSet","metadata":{"annotations":{},"labels":{"app":"daemonset-datakit"},"name":"datakit","namespace":"datakit"},"spec":{"revisionHistoryLimit":10,"selector":{"matchLabels":{"app":"daemonset-datakit"}},"template":{"metadata":{"labels":{"app":"daemonset-datakit"}},"spec":{"containers":[{"env":[{"name":"POD_NAME","valueFrom":{"fieldRef":{"fieldPath":"metadata.name"}}},{"name":"ENV_K8S_NODE_IP","valueFrom":{"fieldRef":{"apiVersion":"v1","fieldPath":"status.hostIP"}}},{"name":"ENV_K8S_NODE_NAME","valueFrom":{"fieldRef":{"apiVersion":"v1","fieldPath":"spec.nodeName"}}},{"name":"ENV_DATAWAY","value":"https://openway.guance.com?token=tkn_3a0052c9f6d3498c8ce9ca0988fd9c82"},{"name":"ENV_CLUSTER_NAME_K8S","value":"cce"},{"name":"ENV_GLOBAL_HOST_TAGS","value":"host=__datakit_hostname,host_ip=__datakit_ip"},{"name":"ENV_GLOBAL_ELECTION_TAGS","value":""},{"name":"ENV_DEFAULT_ENABLED_INPUTS","value":"statsd,dk,cpu,disk,diskio,mem,swap,system,hostobject,net,host_processes,container,kubernetesprometheus,logfwdserver,opentelemetry"},{"name":"ENV_ENABLE_ELECTION","value":"enable"},{"name":"ENV_INPUT_CONTAINER_ENABLE_POD_METRIC","value":"true"},{"name":"ENV_HTTP_LISTEN","value":"0.0.0.0:9529"},{"name":"ENV_INPUT_OTEL_GRPC","value":"{"addr": "0.0.0.0:4317"}"},{"name":"HOST_PROC","value":"/rootfs/proc"},{"name":"HOST_SYS","value":"/rootfs/sys"},{"name":"HOST_ETC","value":"/rootfs/etc"},{"name":"HOST_VAR","value":"/rootfs/var"},{"name":"HOST_RUN","value":"/rootfs/run"},{"name":"HOST_DEV","value":"/rootfs/dev"},{"name":"HOST_ROOT","value":"/rootfs"}],"image":"swr.cn-north-4.myhuaweicloud.com/liurui_bj/datakit:1.79.0","imagePullPolicy":"IfNotPresent","name":"datakit","ports":[{"containerPort":9529,"hostPort":9529,"name":"http-port","protocol":"TCP"},{"containerPort":8125,"hostPort":8125,"name":"statsd-port","protocol":"UDP"},{"containerPort":4317,"hostPort":4317,"name":"otel-grpc-port","protocol":"TCP"},{"containerPort":9533,"hostPort":9533,"name":"logfwd-port","protocol":"TCP"}],"resources":{"limits":{"cpu":"500m","memory":"1Gi"},"requests":{"cpu":"200m","memory":"128Mi"}},"securityContext":{"privileged":true},"volumeMounts":[{"mountPath":"/usr/local/datakit/cache","name":"cache","readOnly":false},{"mountPath":"/rootfs","mountPropagation":"HostToContainer","name":"rootfs"},{"mountPath":"/var/run","mountPropagation":"HostToContainer","name":"run"},{"mountPath":"/sys/kernel/debug","name":"debugfs"},{"mountPath":"/var/lib/containerd/container_logs","name":"container-logs"},{"mountPath":"/usr/local/datakit/conf.d/kubernetesprometheus/kubelet.conf","name":"datakit-conf","subPath":"kubelet.conf"}],"workingDir":"/usr/local/datakit"}],"dnsPolicy":"ClusterFirstWithHostNet","hostIPC":true,"hostNetwork":true,"hostPID":true,"restartPolicy":"Always","serviceAccount":"datakit","serviceAccountName":"datakit","tolerations":[{"operator":"Exists"}],"volumes":[{"configMap":{"name":"datakit-conf"},"name":"datakit-conf"},{"hostPath":{"path":"/"},"name":"rootfs"},{"hostPath":{"path":"/var/run"},"name":"run"},{"hostPath":{"path":"/sys/kernel/debug"},"name":"debugfs"},{"hostPath":{"path":"/root/datakit_cache"},"name":"cache"},{"hostPath":{"path":"/var/lib/containerd/container_logs"},"name":"container-logs"}]}},"updateStrategy":{"rollingUpdate":{"maxUnavailable":1},"type":"RollingUpdate"}}}managedFields:-manager:kubectl-client-side-applyoperation:UpdateapiVersion:apps/v1time:2025-09-16T10:45:45ZfieldsType:FieldsV1fieldsV1:f:metadata:f:annotations:.:{}f:deprecated.daemonset.template.generation:{}f:kubectl.kubernetes.io/last-applied-configuration:{}f:labels:.:{}f:app:{}f:spec:f:revisionHistoryLimit:{}f:selector:{}f:template:f:metadata:f:labels:.:{}f:app:{}f:spec:f:containers:k:{"name":"datakit"}:.:{}f:env:.:{}k:{"name":"ENV_CLUSTER_NAME_K8S"}:.:{}f:name:{}f:value:{}k:{"name":"ENV_DATAWAY"}:.:{}f:name:{}f:value:{}k:{"name":"ENV_DEFAULT_ENABLED_INPUTS"}:.:{}f:name:{}f:value:{}k:{"name":"ENV_ENABLE_ELECTION"}:.:{}f:name:{}f:value:{}k:{"name":"ENV_GLOBAL_ELECTION_TAGS"}:.:{}f:name:{}k:{"name":"ENV_GLOBAL_HOST_TAGS"}:.:{}f:name:{}f:value:{}k:{"name":"ENV_HTTP_LISTEN"}:.:{}f:name:{}f:value:{}k:{"name":"ENV_INPUT_CONTAINER_ENABLE_POD_METRIC"}:.:{}f:name:{}f:value:{}k:{"name":"ENV_INPUT_OTEL_GRPC"}:.:{}f:name:{}f:value:{}k:{"name":"ENV_K8S_NODE_IP"}:.:{}f:name:{}f:valueFrom:.:{}f:fieldRef:{}k:{"name":"ENV_K8S_NODE_NAME"}:.:{}f:name:{}f:valueFrom:.:{}f:fieldRef:{}k:{"name":"HOST_DEV"}:.:{}f:name:{}f:value:{}k:{"name":"HOST_ETC"}:.:{}f:name:{}f:value:{}k:{"name":"HOST_PROC"}:.:{}f:name:{}f:value:{}k:{"name":"HOST_ROOT"}:.:{}f:name:{}f:value:{}k:{"name":"HOST_RUN"}:.:{}f:name:{}f:value:{}k:{"name":"HOST_SYS"}:.:{}f:name:{}f:value:{}k:{"name":"HOST_VAR"}:.:{}f:name:{}f:value:{}k:{"name":"POD_NAME"}:.:{}f:name:{}f:valueFrom:.:{}f:fieldRef:{}f:image:{}f:imagePullPolicy:{}f:name:{}f:ports:.:{}k:{"containerPort":4317,"protocol":"TCP"}:.:{}f:containerPort:{}f:hostPort:{}f:name:{}f:protocol:{}k:{"containerPort":8125,"protocol":"UDP"}:.:{}f:containerPort:{}f:hostPort:{}f:name:{}f:protocol:{}k:{"containerPort":9529,"protocol":"TCP"}:.:{}f:containerPort:{}f:hostPort:{}f:name:{}f:protocol:{}k:{"containerPort":9533,"protocol":"TCP"}:.:{}f:containerPort:{}f:hostPort:{}f:name:{}f:protocol:{}f:resources:.:{}f:limits:.:{}f:cpu:{}f:memory:{}f:requests:.:{}f:cpu:{}f:memory:{}f:securityContext:.:{}f:privileged:{}f:terminationMessagePath:{}f:terminationMessagePolicy:{}f:volumeMounts:.:{}k:{"mountPath":"/rootfs"}:.:{}f:mountPath:{}f:mountPropagation:{}f:name:{}k:{"mountPath":"/sys/kernel/debug"}:.:{}f:mountPath:{}f:name:{}k:{"mountPath":"/usr/local/datakit/cache"}:.:{}f:mountPath:{}f:name:{}k:{"mountPath":"/usr/local/datakit/conf.d/kubernetesprometheus/kubelet.conf"}:.:{}f:mountPath:{}f:name:{}f:subPath:{}k:{"mountPath":"/var/lib/containerd/container_logs"}:.:{}f:mountPath:{}f:name:{}k:{"mountPath":"/var/run"}:.:{}f:mountPath:{}f:mountPropagation:{}f:name:{}f:workingDir:{}f:dnsPolicy:{}f:hostIPC:{}f:hostNetwork:{}f:hostPID:{}f:restartPolicy:{}f:schedulerName:{}f:securityContext:{}f:serviceAccount:{}f:serviceAccountName:{}f:terminationGracePeriodSeconds:{}f:tolerations:{}f:volumes:.:{}k:{"name":"cache"}:.:{}f:hostPath:.:{}f:path:{}f:type:{}f:name:{}k:{"name":"container-logs"}:.:{}f:hostPath:.:{}f:path:{}f:type:{}f:name:{}k:{"name":"datakit-conf"}:.:{}f:configMap:.:{}f:defaultMode:{}f:name:{}f:name:{}k:{"name":"debugfs"}:.:{}f:hostPath:.:{}f:path:{}f:type:{}f:name:{}k:{"name":"rootfs"}:.:{}f:hostPath:.:{}f:path:{}f:type:{}f:name:{}k:{"name":"run"}:.:{}f:hostPath:.:{}f:path:{}f:type:{}f:name:{}f:updateStrategy:f:rollingUpdate:.:{}f:maxSurge:{}f:maxUnavailable:{}f:type:{}-manager:cfe-apiserveroperation:UpdateapiVersion:apps/v1time:2025-09-19T06:28:11ZfieldsType:FieldsV1fieldsV1:f:spec:f:template:f:spec:f:affinity:.:{}f:nodeAffinity:.:{}f:requiredDuringSchedulingIgnoredDuringExecution:{}-manager:kube-controller-manageroperation:UpdateapiVersion:apps/v1time:2025-09-19T06:28:19ZfieldsType:FieldsV1fieldsV1:f:status:f:currentNumberScheduled:{}f:desiredNumberScheduled:{}f:numberAvailable:{}f:numberMisscheduled:{}f:numberReady:{}f:observedGeneration:{}f:updatedNumberScheduled:{}subresource:statusspec:selector:matchLabels:app:daemonset-datakittemplate:metadata:creationTimestamp:nulllabels:app:daemonset-datakitspec:volumes:-name:datakit-confconfigMap:name:datakit-confdefaultMode:420-name:rootfshostPath:path:/type:-name:runhostPath:path:/var/runtype:-name:debugfshostPath:path:/sys/kernel/debugtype:-name:cachehostPath:path:/root/datakit_cachetype:-name:container-logshostPath:path:/var/lib/containerd/container_logstype:containers:-name:datakitimage:swr.cn-north-4.myhuaweicloud.com/liurui_bj/datakit:1.79.0workingDir:/usr/local/datakitports:-name:http-porthostPort:9529containerPort:9529protocol:TCP-name:statsd-porthostPort:8125containerPort:8125protocol:UDP-name:otel-grpc-porthostPort:4317containerPort:4317protocol:TCP-name:logfwd-porthostPort:9533containerPort:9533protocol:TCPenv:-name:POD_NAMEvalueFrom:fieldRef:apiVersion:v1fieldPath:metadata.name-name:ENV_K8S_NODE_IPvalueFrom:fieldRef:apiVersion:v1fieldPath:status.hostIP-name:ENV_K8S_NODE_NAMEvalueFrom:fieldRef:apiVersion:v1fieldPath:spec.nodeName-name:ENV_DATAWAYvalue:https://openway.guance.com?token=tkn_3a0052c9f6d3498c8ce9ca0988fd9c82-name:ENV_CLUSTER_NAME_K8Svalue:cce-name:ENV_GLOBAL_HOST_TAGSvalue:host=__datakit_hostname,host_ip=__datakit_ip-name:ENV_GLOBAL_ELECTION_TAGS-name:ENV_DEFAULT_ENABLED_INPUTSvalue:statsd,dk,cpu,disk,diskio,mem,swap,system,hostobject,net,host_processes,container,kubernetesprometheus,logfwdserver,opentelemetry-name:ENV_ENABLE_ELECTIONvalue:enable-name:ENV_INPUT_CONTAINER_ENABLE_POD_METRICvalue:true-name:ENV_HTTP_LISTENvalue:0.0.0.0:9529-name:ENV_INPUT_OTEL_GRPCvalue:{"addr": "0.0.0.0:4317"}-name:HOST_PROCvalue:/rootfs/proc-name:HOST_SYSvalue:/rootfs/sys-name:HOST_ETCvalue:/rootfs/etc-name:HOST_VARvalue:/rootfs/var-name:HOST_RUNvalue:/rootfs/run-name:HOST_DEVvalue:/rootfs/dev-name:HOST_ROOTvalue:/rootfsresources:limits:cpu:500mmemory:1Girequests:cpu:200mmemory:128MivolumeMounts:-name:cachemountPath:/usr/local/datakit/cache-name:rootfsmountPath:/rootfsmountPropagation:HostToContainer-name:runmountPath:/var/runmountPropagation:HostToContainer-name:debugfsmountPath:/sys/kernel/debug-name:container-logsmountPath:/var/lib/containerd/container_logs-name:datakit-confmountPath:/usr/local/datakit/conf.d/kubernetesprometheus/kubelet.confsubPath:kubelet.confterminationMessagePath:/dev/termination-logterminationMessagePolicy:FileimagePullPolicy:IfNotPresentsecurityContext:privileged:truerestartPolicy:AlwaysterminationGracePeriodSeconds:30dnsPolicy:ClusterFirstWithHostNetserviceAccountName:datakitserviceAccount:datakithostNetwork:truehostPID:truehostIPC:truesecurityContext:{}affinity:nodeAffinity:requiredDuringSchedulingIgnoredDuringExecution:nodeSelectorTerms:-matchExpressions:-key:bursting.cci.io/node-typeoperator:NotInvalues:-virtual-kubeletschedulerName:default-schedulertolerations:-operator:ExistsupdateStrategy:type:RollingUpdaterollingUpdate:maxUnavailable:1maxSurge:0revisionHistoryLimit:10status:currentNumberScheduled:2numberMisscheduled:0desiredNumberScheduled:2numberReady:2observedGeneration:2updatedNumberScheduled:2numberAvailable:2进入 datakit 容器,并执行 datakit monitor 查看 opentelemetry 采集器是否开启步骤 4:重写 Otel Collector 的采集配置
log-agent-otel-collector.yaml
kind: Deployment apiVersion: apps/v1 metadata: name: log-agent-otel-collector namespace: monitoring uid: c055d466-4287-4860-9ff7-d28cc036ae89 resourceVersion: 7557223 generation: 3 creationTimestamp: 2025-09-22T07:28:09Z labels: app: log-agent-otel-collector app.kubernetes.io/managed-by: Helmrelease: cceaddon-log-agentannotations: deployment.kubernetes.io/revision:3kubectl.kubernetes.io/last-applied-configuration: > {"apiVersion":"apps/v1","kind":"Deployment","metadata":{"annotations":{"deployment.kubernetes.io/revision":"3","meta.helm.sh/release-name":"cceaddon-log-agent","meta.helm.sh/release-namespace":"monitoring"},"creationTimestamp":"2025-09-20T19:02:18Z","generation":3,"labels":{"app":"log-agent-otel-collector","app.kubernetes.io/managed-by":"Helm","release":"cceaddon-log-agent"},"name":"log-agent-otel-collector","namespace":"monitoring","resourceVersion":"7514159","uid":"180806a1-7260-4139-989c-73945d7b1a4c"},"spec":{"minReadySeconds":5,"progressDeadlineSeconds":120,"replicas":2,"revisionHistoryLimit":10,"selector":{"matchLabels":{"app":"log-agent-otel-collector"}},"strategy":{"rollingUpdate":{"maxSurge":1,"maxUnavailable":1},"type":"RollingUpdate"},"template":{"metadata":{"annotations":{"prometheus.io/path":"/metrics","prometheus.io/port":"8888","prometheus.io/scheme":"http","prometheus.io/scrape":"true","redeploy-timestamp":"1758396245987","scheduler.alpha.kubernetes.io/tolerations":"[{"key": "taint.alpha.kubernetes.io/nodedown","value": "","effect": "NoExecute","operator": "Exists"}]"},"creationTimestamp":null,"labels":{"app":"log-agent-otel-collector","release":"cceaddon-log-agent"}},"spec":{"affinity":{"podAntiAffinity":{"preferredDuringSchedulingIgnoredDuringExecution":[{"podAffinityTerm":{"labelSelector":{"matchExpressions":[{"key":"app","operator":"In","values":["log-agent-otel-collector"]}]},"topologyKey":"topology.kubernetes.io/zone"},"weight":100}]}},"containers":[{"args":["--config=/var/paas/ot-collector/ot-collector-service.yaml"],"command":["/var/paas/otel-collector/otelcol"],"env":[{"name":"POD_IP","valueFrom":{"fieldRef":{"apiVersion":"v1","fieldPath":"status.podIP"}}},{"name":"Region","value":"cn-north-4"},{"name":"ProjectID","value":"9e92837f567145009ad4d230c4ac2c01"},{"name":"ClusterID","value":"74e8b92f-8f80-11f0-afe1-0255ac10026c"},{"name":"ClusterName","value":"cce-cci"},{"name":"WATCH_SECRET","value":"true"},{"name":"INSECURE_SKIP_VERIFY","value":"true"},{"name":"SCENE","value":"HWS"},{"name":"AKSK_SECRET_NAME","value":"paas.elb"},{"name":"WATCH_CLUSTER_CONFIG","value":"true"},{"name":"AOM_ENDPOINT","value":"https://aom.cn-north-4.myhuaweicloud.com"},{"name":"LTS_ACCESS_ENDPOINT","value":"https://lts-access.cn-north-4.myhuaweicloud.com:8102"},{"name":"CRYPTO_ENABLE","value":"true"},{"name":"PAAS_CRYPTO_PATH","value":"/etc/cipher"}],"image":"swr.cn-north-4.myhuaweicloud.com/hwofficial/otelcol:1.7.4","imagePullPolicy":"IfNotPresent","livenessProbe":{"exec":{"command":["/bin/bash","-c","exit 0"]},"failureThreshold":3,"initialDelaySeconds":20,"periodSeconds":20,"successThreshold":1,"timeoutSeconds":10},"name":"otel-collector","ports":[{"containerPort":8006,"protocol":"TCP"},{"containerPort":4317,"protocol":"TCP"},{"containerPort":8888,"name":"metric-port","protocol":"TCP"}],"resources":{"limits":{"cpu":"1","memory":"2Gi"},"requests":{"cpu":"200m","memory":"1Gi"}},"securityContext":{"allowPrivilegeEscalation":false,"readOnlyRootFilesystem":true,"runAsGroup":10000,"runAsUser":10000},"terminationMessagePath":"/dev/termination-log","terminationMessagePolicy":"File","volumeMounts":[{"mountPath":"/var/paas/otel-collector/conf","name":"otel-collector-config-vol","readOnly":true},{"mountPath":"/var/paas/ot-collector/ot-collector-service.yaml","name":"ot-collector-service","readOnly":true,"subPath":"ot-collector-service.yaml"},{"mountPath":"/var/paas/sys/log","name":"logpath"},{"mountPath":"/etc/cipher/root.key","name":"rootkey","readOnly":true},{"mountPath":"/etc/cipher/common_shared.key","name":"commonsharedkey","readOnly":true},{"mountPath":"/var/paas/cert","name":"cert","readOnly":true}]}],"dnsConfig":{"options":[{"name":"ndots","value":"3"}]},"dnsPolicy":"ClusterFirst","initContainers":[{"command":["/bin/sh","-c","mkdir -p /var/paas/sys/log/otel u0026u0026 chmod 750 /var/paas/sys/log/otel u0026u0026 chown -R 10000:10000 /var/paas/sys/log/otel"],"image":"swr.cn-north-4.myhuaweicloud.com/hwofficial/otelcol:1.7.4","imagePullPolicy":"IfNotPresent","name":"init","resources":{"limits":{"cpu":"200m","memory":"200Mi"},"requests":{"cpu":"100m","memory":"100Mi"}},"terminationMessagePath":"/dev/termination-log","terminationMessagePolicy":"File","volumeMounts":[{"mountPath":"/var/paas/sys/log","name":"logpath"}]}],"priorityClassName":"system-cluster-critical","restartPolicy":"Always","schedulerName":"default-scheduler","securityContext":{"fsGroup":10000},"serviceAccount":"log-agent-serviceaccount","serviceAccountName":"log-agent-serviceaccount","terminationGracePeriodSeconds":30,"tolerations":[{"effect":"NoExecute","key":"node.kubernetes.io/not-ready","operator":"Exists","tolerationSeconds":30},{"effect":"NoExecute","key":"node.kubernetes.io/unreachable","operator":"Exists","tolerationSeconds":30},{"key":"role","operator":"Exists"},{"effect":"NoSchedule","key":"distribution.io/category","operator":"Equal","value":"IES"}],"volumes":[{"name":"otel-collector-config-vol","secret":{"defaultMode":384,"secretName":"log-agent-otel-collector-config"}},{"configMap":{"defaultMode":420,"items":[{"key":"ot-collector-service.yaml","path":"ot-collector-service.yaml"}],"name":"ot-collector-service"},"name":"ot-collector-service"},{"name":"cert","secret":{"defaultMode":416,"items":[{"key":"caCert","path":"caCert"},{"key":"serverCert","path":"serverCert"},{"key":"serverKey","path":"serverKey"}],"secretName":"log-agent-cert-secret"}},{"hostPath":{"path":"/var/paas/sys/log","type":""},"name":"logpath"},{"hostPath":{"path":"/var/paas/srv/kubernetes/root.key","type":""},"name":"rootkey"},{"hostPath":{"path":"/var/paas/srv/kubernetes/common_shared.key","type":""},"name":"commonsharedkey"}]}}},"status":{"conditions":[{"lastTransitionTime":"2025-09-20T19:02:18Z","lastUpdateTime":"2025-09-20T19:37:31Z","message":"ReplicaSet "log-agent-otel-collector-8fbf8c694" has successfully progressed.","reason":"NewReplicaSetAvailable","status":"True","type":"Progressing"},{"lastTransitionTime":"2025-09-22T06:15:38Z","lastUpdateTime":"2025-09-22T06:15:38Z","message":"Deployment does not have minimum availability.","reason":"MinimumReplicasUnavailable","status":"False","type":"Available"}],"observedGeneration":3,"replicas":2,"unavailableReplicas":2,"updatedReplicas":2}} meta.helm.sh/release-name: cceaddon-log-agentmeta.helm.sh/release-namespace:monitoringmanagedFields: - manager: kubectl-client-side-applyoperation:UpdateapiVersion: apps/v1time:2025-09-22T07:28:09ZfieldsType: FieldsV1 fieldsV1: f:metadata: f:annotations: .: {} f:kubectl.kubernetes.io/last-applied-configuration: {} f:meta.helm.sh/release-name: {} f:meta.helm.sh/release-namespace: {} f:labels: .: {} f:app: {} f:app.kubernetes.io/managed-by: {} f:release: {} f:spec: f:minReadySeconds: {} f:progressDeadlineSeconds: {} f:replicas: {} f:revisionHistoryLimit: {} f:selector: {} f:strategy: f:rollingUpdate: .: {} f:maxSurge: {} f:maxUnavailable: {} f:type: {} f:template: f:metadata: f:annotations: .: {} f:prometheus.io/path: {} f:prometheus.io/port: {} f:prometheus.io/scheme: {} f:prometheus.io/scrape: {} f:scheduler.alpha.kubernetes.io/tolerations: {} f:labels: .: {} f:app: {} f:release: {} f:spec: f:affinity: .: {} f:podAntiAffinity: .: {} f:preferredDuringSchedulingIgnoredDuringExecution: {} f:containers: k:{"name":"otel-collector"}: .: {} f:args: {} f:command: {} f:env: .: {} k:{"name":"AKSK_SECRET_NAME"}: .: {} f:name: {} f:value: {} k:{"name":"AOM_ENDPOINT"}: .: {} f:name: {} f:value: {} k:{"name":"CRYPTO_ENABLE"}: .: {} f:name: {} f:value: {} k:{"name":"ClusterID"}: .: {} f:name: {} f:value: {} k:{"name":"ClusterName"}: .: {} f:name: {} f:value: {} k:{"name":"INSECURE_SKIP_VERIFY"}: .: {} f:name: {} f:value: {} k:{"name":"LTS_ACCESS_ENDPOINT"}: .: {} f:name: {} f:value: {} k:{"name":"PAAS_CRYPTO_PATH"}: .: {} f:name: {} f:value: {} k:{"name":"POD_IP"}: .: {} f:name: {} f:valueFrom: .: {} f:fieldRef: {} k:{"name":"ProjectID"}: .: {} f:name: {} f:value: {} k:{"name":"Region"}: .: {} f:name: {} f:value: {} k:{"name":"SCENE"}: .: {} f:name: {} f:value: {} k:{"name":"WATCH_CLUSTER_CONFIG"}: .: {} f:name: {} f:value: {} k:{"name":"WATCH_SECRET"}: .: {} f:name: {} f:value: {} f:image: {} f:imagePullPolicy: {} f:livenessProbe: .: {} f:exec: .: {} f:command: {} f:failureThreshold: {} f:initialDelaySeconds: {} f:periodSeconds: {} f:successThreshold: {} f:timeoutSeconds: {} f:name: {} f:ports: .: {} k:{"containerPort":4317,"protocol":"TCP"}: .: {} f:containerPort: {} f:protocol: {} k:{"containerPort":8006,"protocol":"TCP"}: .: {} f:containerPort: {} f:protocol: {} k:{"containerPort":8888,"protocol":"TCP"}: .: {} f:containerPort: {} f:name: {} f:protocol: {} f:resources: .: {} f:limits: .: {} f:cpu: {} f:memory: {} f:requests: .: {} f:cpu: {} f:memory: {} f:securityContext: .: {} f:allowPrivilegeEscalation: {} f:readOnlyRootFilesystem: {} f:runAsGroup: {} f:runAsUser: {} f:terminationMessagePath: {} f:terminationMessagePolicy: {} f:volumeMounts: .: {} k:{"mountPath":"/etc/cipher/common_shared.key"}: .: {} f:mountPath: {} f:name: {} f:readOnly: {} k:{"mountPath":"/etc/cipher/root.key"}: .: {} f:mountPath: {} f:name: {} f:readOnly: {} k:{"mountPath":"/var/paas/cert"}: .: {} f:mountPath: {} f:name: {} f:readOnly: {} k:{"mountPath":"/var/paas/ot-collector/ot-collector-service.yaml"}: .: {} f:mountPath: {} f:name: {} f:readOnly: {} f:subPath: {} k:{"mountPath":"/var/paas/otel-collector/conf"}: .: {} f:mountPath: {} f:name: {} f:readOnly: {} k:{"mountPath":"/var/paas/sys/log"}: .: {} f:mountPath: {} f:name: {} f:dnsConfig: .: {} f:options: {} f:dnsPolicy: {} f:initContainers: .: {} k:{"name":"init"}: .: {} f:command: {} f:image: {} f:imagePullPolicy: {} f:name: {} f:resources: .: {} f:limits: .: {} f:cpu: {} f:memory: {} f:requests: .: {} f:cpu: {} f:memory: {} f:terminationMessagePath: {} f:terminationMessagePolicy: {} f:volumeMounts: .: {} k:{"mountPath":"/var/paas/sys/log"}: .: {} f:mountPath: {} f:name: {} f:priorityClassName: {} f:restartPolicy: {} f:schedulerName: {} f:securityContext: .: {} f:fsGroup: {} f:serviceAccount: {} f:serviceAccountName: {} f:terminationGracePeriodSeconds: {} f:tolerations: {} f:volumes: .: {} k:{"name":"cert"}: .: {} f:name: {} f:secret: .: {} f:defaultMode: {} f:items: {} f:secretName: {} k:{"name":"commonsharedkey"}: .: {} f:hostPath: .: {} f:path: {} f:type: {} f:name: {} k:{"name":"logpath"}: .: {} f:hostPath: .: {} f:path: {} f:type: {} f:name: {} k:{"name":"ot-collector-service"}: .: {} f:configMap: .: {} f:defaultMode: {} f:items: {} f:name: {} f:name: {} k:{"name":"otel-collector-config-vol"}: .: {} f:name: {} f:secret: .: {} f:defaultMode: {} f:secretName: {} k:{"name":"rootkey"}: .: {} f:hostPath: .: {} f:path: {} f:type: {} f:name: {} - manager: cfe-apiserver operation:UpdateapiVersion: apps/v1time:2025-09-22T07:40:23ZfieldsType: FieldsV1 fieldsV1: f:spec: f:template: f:metadata: f:annotations: f:redeploy-timestamp: {} - manager: kube-controller-manager operation:UpdateapiVersion: apps/v1time:2025-09-22T07:40:31ZfieldsType: FieldsV1 fieldsV1: f:metadata: f:annotations: f:deployment.kubernetes.io/revision: {} f:status: f:availableReplicas: {} f:conditions: .: {} k:{"type":"Available"}: .: {} f:lastTransitionTime: {} f:lastUpdateTime: {} f:message: {} f:reason: {} f:status: {} f:type: {} k:{"type":"Progressing"}: .: {} f:lastTransitionTime: {} f:lastUpdateTime: {} f:message: {} f:reason: {} f:status: {} f:type: {} f:observedGeneration: {} f:readyReplicas: {} f:replicas: {} f:updatedReplicas: {} subresource:statusspec: replicas:2selector: matchLabels: app:log-agent-otel-collectortemplate: metadata: creationTimestamp:nulllabels: app:log-agent-otel-collectorrelease: cceaddon-log-agentannotations: prometheus.io/path: /metrics prometheus.io/port:8888prometheus.io/scheme:httpprometheus.io/scrape:trueredeploy-timestamp:1758526823089scheduler.alpha.kubernetes.io/tolerations:[{"key": "taint.alpha.kubernetes.io/nodedown","value": "","effect": "NoExecute","operator": "Exists"}]spec: volumes: -name: otel-collector-config-vol secret: secretName:log-agent-otel-collector-config defaultMode:384-name: ot-collector-service configMap:name: ot-collector-service items: -key: ot-collector-service.yamlpath: ot-collector-service.yaml defaultMode:420-name: cert secret: secretName:log-agent-cert-secret items: -key: caCertpath: caCert -key: serverCertpath: serverCert -key: serverKeypath: serverKey defaultMode:416-name: logpath hostPath:path: /var/paas/sys/logtype:-name: rootkey hostPath:path: /var/paas/srv/kubernetes/root.keytype:-name: commonsharedkey hostPath:path: /var/paas/srv/kubernetes/common_shared.keytype:initContainers: -name: init image: swr.cn-north-4.myhuaweicloud.com/hwofficial/otelcol:1.7.4command: - /bin/sh --c- mkdir -p /var/paas/sys/log/otel && chmod750/var/paas/sys/log/otel && chown -R10000:10000/var/paas/sys/log/otel resources: limits: cpu:200mmemory:200Mi requests: cpu:100mmemory:100Mi volumeMounts: -name: logpath mountPath: /var/paas/sys/logterminationMessagePath: /dev/termination-logterminationMessagePolicy:FileimagePullPolicy: IfNotPresent containers: -name: otel-collector image: swr.cn-north-4.myhuaweicloud.com/hwofficial/otelcol:1.7.4command: - /var/paas/otel-collector/otelcol args: ---config=/var/paas/ot-collector/ot-collector-service.yamlports: - containerPort:8006protocol: TCP - containerPort:4317protocol: TCP -name: metric-port containerPort:8888protocol: TCP env: -name: POD_IP valueFrom: fieldRef: apiVersion: v1 fieldPath: status.podIP -name: Regionvalue: cn-north-4-name: ProjectIDvalue:9e92837f567145009ad4d230c4ac2c01 -name: ClusterIDvalue:74e8b92f-8f80-11f0-afe1-0255ac10026c -name: ClusterNamevalue: cce-cci -name: WATCH_SECRETvalue:true-name: INSECURE_SKIP_VERIFYvalue:true-name: SCENEvalue: HWS -name: AKSK_SECRET_NAMEvalue: paas.elb -name: WATCH_CLUSTER_CONFIGvalue:true-name: AOM_ENDPOINTvalue: https://aom.cn-north-4.myhuaweicloud.com -name: LTS_ACCESS_ENDPOINTvalue: https://lts-access.cn-north-4.myhuaweicloud.com:8102-name: CRYPTO_ENABLEvalue:true-name: PAAS_CRYPTO_PATHvalue: /etc/cipher resources: limits: cpu:1memory:2Gi requests: cpu:200mmemory:1Gi volumeMounts: -name: otel-collector-config-vol readOnly:truemountPath: /var/paas/otel-collector/conf -name: ot-collector-service readOnly:truemountPath: /var/paas/ot-collector/ot-collector-service.yaml subPath: ot-collector-service.yaml -name: logpath mountPath: /var/paas/sys/log-name: rootkey readOnly:truemountPath: /etc/cipher/root.key -name: commonsharedkey readOnly:truemountPath: /etc/cipher/common_shared.key -name: cert readOnly:truemountPath: /var/paas/cert livenessProbe: exec: command: - /bin/bash --c-exit0initialDelaySeconds:20timeoutSeconds:10periodSeconds:20successThreshold:1failureThreshold:3terminationMessagePath: /dev/termination-logterminationMessagePolicy:FileimagePullPolicy: IfNotPresent securityContext: runAsUser:10000runAsGroup:10000readOnlyRootFilesystem:trueallowPrivilegeEscalation:falserestartPolicy:AlwaysterminationGracePeriodSeconds:30dnsPolicy: ClusterFirst serviceAccountName:log-agent-serviceaccount serviceAccount:log-agent-serviceaccount securityContext: fsGroup:10000affinity: podAntiAffinity: preferredDuringSchedulingIgnoredDuringExecution: - weight:100podAffinityTerm: labelSelector: matchExpressions: -key: appoperator:Invalues: -log-agent-otel-collector topologyKey: topology.kubernetes.io/zone schedulerName:default-scheduler tolerations: -key: node.kubernetes.io/not-readyoperator:Existseffect: NoExecute tolerationSeconds:30-key: node.kubernetes.io/unreachableoperator:Existseffect: NoExecute tolerationSeconds:30-key:roleoperator:Exists-key: distribution.io/categoryoperator: Equalvalue: IES effect: NoSchedule priorityClassName:system-cluster-criticaldnsConfig: options: -name: ndotsvalue:3strategy:type: RollingUpdate rollingUpdate: maxUnavailable:1maxSurge:1minReadySeconds:5revisionHistoryLimit:10progressDeadlineSeconds:120status: observedGeneration:3replicas:2updatedReplicas:2readyReplicas:2availableReplicas:2conditions: -type: Availablestatus:TruelastUpdateTime:2025-09-22T07:28:16ZlastTransitionTime:2025-09-22T07:28:16Zreason: MinimumReplicasAvailable message: Deployment hasminimumavailability. -type: Progressingstatus:TruelastUpdateTime:2025-09-22T07:40:31ZlastTransitionTime:2025-09-22T07:28:09Zreason: NewReplicaSetAvailable message: ReplicaSet"log-agent-otel-collector-5cfd6f4c7c"has successfully progressed.为避免配置覆盖以及确保配置生效,指定 Otel Collector 启动加载生效的配置Otel Collector 挂载新的配置关闭健康检查若要实现 LTS 和观测云的数据双写,挂载的配置如下:exporters: aom/default-event-aom:endpoint:https://aom.cn-north-4.myhuaweicloud.comevents: -name: DeleteNodeWithNoServername_cn: 废弃节点清理 ... lts/default-stdout:compress_type: gzipendpoint:https://lts-access.cn-north-4.myhuaweicloud.com:8102log_type: loglts_group_id: d6b393b8-484f-4835-ba9f-xxxxxlts_stream_id:8e02106f-8aeb-4da5-a5e1-xxxxxotlphttp:endpoint:http://datakit-service.datakit:9529/oteltls:insecure: trueprocessors: batch/default-event:send_batch_max_size:1000send_batch_size:500timeout:1000000000... filter/cci-log:logs:exclude: {}include:match_type: strictrecord_attributes: -key: logconfigvalue: cci-log filter/datakit:logs:exclude: {}include:match_type: strictrecord_attributes: -key: logconfigvalue: datakitservice:pipelines: logs/cci-log:exporters: - lts/cci-log - otlphttp ...挂载的配置若是只写到观测云,配置如下:exporters:otlphttp:endpoint:http://datakit-service.datakit:9529/oteltls:insecure:trueprocessors:batch/logs:send_batch_max_size:2000send_batch_size:2000filter/cci-log:logs:exclude:{}include:match_type:strictrecord_attributes:-key:logconfigvalue:cci-logreceivers:fluentforward:endpoint:${POD_IP}:8006tls:cert_file:/var/paas/cert/serverCertclient_ca_file:/var/paas/cert/caCertkey_file:/var/paas/cert/serverKeyk8s_events:{}service:pipelines:logs/cci-log:exporters:-otlphttpprocessors:-filter/cci-log-batch/logsreceivers:-fluentforwardtelemetry:logs:{}metrics:address:${POD_IP}:8888level:basic步骤 5:容器 demo 发起请求,产生日志
步骤 6:在观测云验证日志接入
登录观测云控制台 → 日志查看器 ,可以看到相关日志已经被采集到了观测云。怎样连接云服务器
您好:云优数据云计算 www.yunyoushuju.cn 2核2G6M最低19.9元/月 欢迎开机

发表评论
最近发表
标签列表