
可观测性后端微服务云原生【免费下载链接】skywalkingAPM, Application Performance Monitoring System项目地址https://gitcode.com/gh_mirrors/sky/skywalking点击查看免费下载SkyWalking 的 OAP 后端Analysis and Persistence 服务与 Web UI 是典型的无状态服务非常适合以 Pod / Deployment 的形式运行在 Kubernetes 集群中。本指南聚焦于在 Kubernetes 中部署 SkyWalking 后端与 UI 的完整流程OAP 的大多数配置在 Helm 部署场景下通过**系统环境变量System Environment Variables**下发因此理解SW_前缀配置体系、镜像启动逻辑与集群协调方式是成功落地 K8s 部署的关键。读完本文你将掌握 Helm 部署 OAP 与 UI 的整体思路、环境变量配置方法以及仓库中与之配套的镜像入口、健康检查与 Kubernetes 集群协调器等底层实现细节。阅读前提先熟悉 Quick Start 与 Advanced Setup在进入 Kubernetes 部署之前建议先通读以下两份基础文档它们分别覆盖了 SkyWalking 后端的最小启动方式和进阶部署拓扑Kubernetes 部署可以视为以环境变量驱动配置的进阶部署形态Quick Start后端快速启动指南了解 OAP 启动所依赖的存储、协议端口gRPC 11800 / HTTP 12800等最小要素。Advanced Setup后端进阶部署了解多实例部署、存储选型、负载均衡等与 K8s 场景强相关的内容。这两份文档描述的是 OAP 本身的部署约束而在 Kubernetes 场景下这些约束通过环境变量映射到每个 OAP 容器中。部署方式总览以 Helm Chart 为中心当前仓库的 backend-k8s.md 明确给出了官方推荐的 Kubernetes 部署路径遵循 Apache SkyWalking 官方 Helm Chart 项目独立仓库 apache/skywalking-helm来部署 OAP 与 UI。Helm Chart 负责将 OAP Deployment、UI Deployment、Service、RBAC、可选的存储依赖如 Elasticsearch等资源模板化使用者只需通过helm repo add添加官方 Chart 仓库、helm repo update后执行helm install即可一次性拉起整套后端与 UI。使用 Helm 时需注意两个关键事实OAP 的大多数设置通过系统环境变量控制。Chart 的values.yaml最终会把配置项渲染为容器环境变量并注入 OAP Pod因此理解下文的环境变量体系等同于掌握了 Chart 配置的映射目标。Chart 的README是部署参数的权威说明。原文档也明确要求请参阅其 Readme 文件其中包含 StorageClass、副本数、镜像 tag、Service 类型ClusterIP / NodePort / LoadBalancer、Ingress 等完整的 values 说明部署前应逐项核对。OAP 配置的核心SW_前缀系统环境变量原文档强调Most SkyWalking OAP settings are controlled through System environment variables when applying helm deployment.应用 Helm 部署时大多数 SkyWalking OAP 设置都由系统环境变量控制。这一设计在仓库中有直接证据镜像入口环境变量如何进入 JVM查看 docker/oap/docker-entrypoint.shOAP 容器的启动逻辑为exec java ${JAVA_OPTS} -classpath ${CLASSPATH} org.apache.skywalking.oap.server.starter.OAPServerStartUp $启动入口是OAPServerStartUp对应 oap-server/server-starter 模块JAVA_OPTS等环境变量直接拼入 JVM 启动参数。而SW_*系列环境变量则会被 OAP 的配置加载机制识别覆盖默认的application.yml配置项——这正是环境变量驱动配置的实现基础。真实环境变量示例来自仓库的 docker-compose 编排虽然 docker-compose 并非 K8s但 docker/docker-compose.yml 中展示的环境变量用法与 Helm 注入 OAP Pod 的方式完全一致是理解配置映射的最佳实例environment: oap-env SW_HEALTH_CHECKER: default SW_TELEMETRY: prometheus JAVA_OPTS: -Xms2048m -Xmx2048m存储相关的环境变量示例同一文件内# Elasticsearch 存储 SW_STORAGE: elasticsearch SW_STORAGE_ES_CLUSTER_NODES: elasticsearch:9200 # BanyanDB 存储 SW_STORAGE: banyandb SW_STORAGE_BANYANDB_TARGETS: banyandb:17912可以看到配置规律非常直观SW_ 大写的配置路径。例如application.yml中storage/selector: elasticsearch对应环境变量SW_STORAGEelasticsearchstorage/elasticsearch/clusterNodes对应SW_STORAGE_ES_CLUSTER_NODES。在 Helm 部署时values.yaml中给出的oap.env或专门的 storage 配置段最终都会以这种SW_形式注入容器。UI 侧同理SW_OAP_ADDRESS与SW_ZIPKIN_ADDRESS用于告诉 UI 如何访问 OAP 服务environment: SW_OAP_ADDRESS: http://oap:12800 SW_ZIPKIN_ADDRESS: http://oap:9412完整配置项对照查阅配置词汇表如果需要在 K8s 中覆盖任意一项 OAP 配置告警、采样、TTL、集群协调等可以查阅 配置词汇表它会列出每项配置对应的环境变量名是 Helm values 与 OAP 配置之间的翻译词典。结合仓库源码镜像端口、健康检查与资源约束理解 OAP 镜像本身的约定有助于正确编写 K8s 的 Service 与探针暴露端口docker/oap/Dockerfile 中EXPOSE 12800 11800 1234分别对应 gRPC 数据上报端口11800、HTTP 查询端口12800与调试端口1234。K8s Service 至少需要暴露 11800 与 12800。健康检查端点docker/docker-compose.yml 使用curl http://localhost:12800/internal/l7check作为健康检查这同样适用于 K8s 的livenessProbe/readinessProbe。内存约束镜像默认JAVA_OPTS -Xms2G 见 Dockerfile在 K8s 中应通过 Chart 的oap.env覆盖JAVA_OPTS并配合 resources 的 limits/requests 一并规划避免 OOMKilled。外部化配置与扩展库entrypoint 脚本会把/skywalking/ext-config下的文件复制到config/、把/skywalking/ext-libs下的 jar 加入 classpathHelm 部署时可通过挂载 ConfigMap / PVC 到这两个目录实现自定义配置与扩展插件注入。深入原理OAP 在 K8s 中的集群协调cluster.kubernetes多副本部署 OAP 时实例之间需要相互发现以形成集群。SkyWalking 为此提供了专门的 Kubernetes 集群协调器位于 cluster-kubernetes-plugin该实现Use kubernetes to manage all instances in Skywalking cluster见 ClusterModuleKubernetesProvider.java。其工作原理从源码可以清晰看到协调器 KubernetesCoordinator.java 通过 fabric8 客户端注册 Informer 监听本命名空间下的 PodNamespacedPodListInformer从 Kubernetes API Server 读取 OAP Pod 列表将每个 Pod 的容器 IP 组装为RemoteInstance列表从而完成节点发现——无需依赖 Zookeeper、Etcd、Nacos 等外部注册中心天然适配 K8s 环境。对应的配置项定义在 ClusterModuleKubernetesConfig.java包含三个参数配置项说明namespaceOAP Pod 所在的 Kubernetes 命名空间协调器只监听该命名空间内的 PodlabelSelectorPod 标签选择器用于过滤出属于 SkyWalking OAP 集群的 Pod 集合uidEnvName存放当前实例唯一 ID 的环境变量名用于区分集群内每个 OAP 实例源码通过UidEnvSupplier读取从源码结构可以推断在application.yml中启用该协调器只需将cluster/selector设为kubernetes并配置以上三项。这要求 OAP Pod 的 ServiceAccount 具备读取 Pod 列表的 RBAC 权限——Helm Chart 通常会一并创建对应的 Role / RoleBinding。更多集群选型对比可参考 后端集群协调指南。部署到生产环境的关注点综合原文档指引与仓库实现将 SkyWalking 部署到 K8s 生产环境时建议重点核对以下几点存储先行OAP 依赖外部存储Elasticsearch、BanyanDB 等。确认 Chart 配置的存储端点、认证信息通过SW_STORAGE_*环境变量正确注入并预先规划存储容量与 TTL 策略参见 TTL 管理。副本与集群协调OAP 副本数大于 1 时确认cluster.selectorkubernetes相关配置及 RBAC 就绪保证实例间 gRPC 通信11800可达。探针与优雅退出使用internal/l7check作为就绪/存活探针OAP 属于有状态数据的后端滚动更新时应配置terminationGracePeriodSeconds给指标落盘与注册信息注销留出时间。配置来源统一优先通过SW_*环境变量而非直接覆盖配置文件保证多环境dev/staging/prod下 Chart values 的可移植性自定义 log4j2 或扩展插件可借助ext-config/ext-libs目录挂载。网络暴露方式UI 与 OAP 的 Service 类型ClusterIP / NodePort / LoadBalancer / Ingress按集群网络环境选择Agent 需能访问 OAP 的 gRPC Service。小结在 Kubernetes 上部署 SkyWalking 后端与 UI 的核心链路是以官方 Helm Chart 为部署载体以SW_前缀系统环境变量为配置通道以 OAP 镜像约定的端口与探针为运行契约。本文既复现了原文档的部署指引也结合仓库源码docker-entrypoint.sh、docker-compose.yml、cluster-kubernetes-plugin给出了可验证的实现细节帮助你准确理解 Chart 参数背后的真实行为从而在 K8s 中稳定落地 SkyWalking。赞分享可观测性后端微服务云原生【免费下载链接】skywalkingAPM, Application Performance Monitoring System项目地址https://gitcode.com/gh_mirrors/sky/skywalking点击查看免费下载相关推荐verl 配置文件深度解析从 ppo_trainer.yaml 到 evaluation.yaml 与 sft_trainer.yaml 的完整参数指南verl 配置文件深度解析从 ppo_trainer.yaml 到 evaluation.yaml 与 sft_trainer.yaml 的完整参数指南 ve可观测性APM链路追踪指标监控日志分析微服务企业级权限控制架构设计jCasbin多模型访问控制解决方案企业级权限控制架构设计jCasbin多模型访问控制解决方案 jCasbin是一个强大且高效的Java访问控制库为企业级应用提供全面的权限管理解决方案。作为C网页爬虫CLI如何在Kubernetes环境中部署和配置Alertmanager完整操作指南如何在Kubernetes环境中部署和配置Alertmanager完整操作指南 Alertmanager是Prometheus生态系统的核心组件专门用于处理后端可观测性告警消息路由上一篇终极JavaScript学习指南一张图掌握完整JavaScript知识体系下一篇如何用 BMAD-METHOD 的 bmad-build 在无上游规划的情况下完成一次已知 bug 修复创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考