|
本文档采用自动化机器翻译技术翻译。 尽管我们力求提供准确的译文,但不对翻译内容的完整性、准确性或可靠性作出任何保证。 若出现任何内容不一致情况,请以原始 英文 版本为准,且原始英文版本为权威文本。 |
|
这是尚未发布的文档。 Admission Controller 1.34-dev. |
OpenTelemetry 快速入门
OpenTelemetry 是一个云原生计算基金会(CNCF)的可观测性框架。它使您的微服务能够提供指标、日志和追踪。
SUSE Security Admission Controller 的组件使用 OpenTelemetry SDK 向 OpenTelemetry 收集器(称为代理)报告数据。
本指南解释了如何使用官方 Kubernetes Helm 图表以 sidecar 模式部署 OpenTelemetry 收集器。
这是使用 OpenTelemetry 的简单部署模式。它的最终设置如下:
-
Admission Controller 堆栈(策略服务器、控制器)的每个 Pod 都有一个 OpenTelemetry 侧车。
-
侧车通过 OpenTelemetry 协议(OTLP)从 Admission Controller 组件接收追踪和监控信息。
-
OpenTelemetry 收集器:
-
将追踪事件发送到中央 Jaeger 实例
-
在特定端口上暴露 Prometheus 指标
-
Admission Controller Helm 图表未涵盖 OpenTelemetry 收集器的所有可能部署场景。也可以配置 Admission Controller 将数据发送到 OpenTelemetry 收集器。该场景的文档在自定义 OpenTelemetry 指南中。
您首先在 Kubernetes 集群中部署 OpenTelemetry,以便在接下来的部分中专门处理追踪和指标。
设置 Kubernetes 集群
|
本节提供了创建用于遥测快速入门的 Kubernetes 集群的逐步说明。 如果您已经有可用的 Kubernetes 集群,可以跳过本节。 |
您可以使用https://minikube.sigs.k8s.io/docs/[minikube]创建一个用于测试的 Kubernetes 集群。
Minikube 有许多后端,在这种情况下,您可以使用https://minikube.sigs.k8s.io/docs/drivers/kvm2/[kvm2]驱动程序,该驱动程序依赖于 libvirt。
假设 libvirtd 在您的机器上正确运行,请输入以下命令:
minikube start --driver=kvm2
该命令产生的输出类似于以下内容:
$ minikube start --driver=kvm2
😄 minikube v1.23.2 on Opensuse-Leap 15.3
✨ Using the kvm2 driver based on user configuration
👍 Starting control plane node minikube in cluster minikube
🔥 Creating kvm2 VM (CPUs=2, Memory=6000MB, Disk=20000MB) ...
🐳 Preparing Kubernetes v1.22.2 on Docker 20.10.8 ...
▪ Generating certificates and keys ...
▪ Booting up control plane ...
▪ Configuring RBAC rules ...
🔎 Verifying Kubernetes components...
▪ Using image gcr.io/k8s-minikube/storage-provisioner:v5
🌟 Enabled addons: storage-provisioner, default-storageclass
🏄 Done! kubectl is now configured to use "minikube" cluster and "default" namespace by default
集群准备好后,您可以继续阅读指南的其余部分。
安装 Traefik
以下遥测指南在使用 Kubernetes Ingress 资源暴露 Jaeger UI 时,将https://traefik.io/traefik/[Traefik]用作 Ingress 控制器。
通过使用其 Helm 图表安装 Traefik:
helm repo add traefik https://traefik.github.io/charts
helm repo update
helm install --wait \
--namespace traefik \
--create-namespace \
traefik traefik/traefik
以下指南创建一个标准 Kubernetes Ingress``ingressClassName: traefik,并通过 Traefik 服务路由 Jaeger 查询 UI。
如果您不想安装 Traefik,跟踪指南也保留 kubectl port-forward 作为直接访问 Jaeger 的后备方案。
安装 OpenTelemetry
|
请参阅依赖矩阵以获取最新支持的组件版本。 |
您使用https://github.com/open-telemetry/opentelemetry-operator[OpenTelemetry Operator]来管理OpenTelemetry Collector侧车的自动注入到PolicyServer pod中。
OpenTelemetry Operator 需要在集群中安装https://cert-manager.io/docs/installation/[cert-manager]。
helm repo add jetstack https://charts.jetstack.io
helm install --wait \
--namespace cert-manager \
--create-namespace \
--set crds.enabled=true \
--version 1.18.2 \
cert-manager jetstack/cert-manager
一旦 cert-manager 运行,您可以安装 OpenTelemetry Operator Helm 图表:
|
截至撰写本文时(2024年11月11日),最新的 OpenTelemetry Operator Helm 图表版本为`0.65.0` |
helm repo add open-telemetry https://open-telemetry.github.io/opentelemetry-helm-charts
helm install --wait \
--namespace open-telemetry \
--create-namespace \
--version 0.97.1 \
--set "manager.collectorImage.repository=otel/opentelemetry-collector-contrib" \
my-opentelemetry-operator open-telemetry/opentelemetry-operator