hubble

ciliumApache-2.0活跃维护

基于 eBPF 的 Kubernetes 网络、服务与安全可观测性平台,提供流量追踪、指标采集和调用链可视化,帮你在集群里快速定位网络与安全策略问题。

Hubble - Network, Service & Security Observability for Kubernetes using eBPF

v1.20.4发布于 2026-11-06 21:44 UTC4,382star +1 / 7 天303fork同步于 2026-11-10 17:39 UTC

怎么上手

由 README 提炼,执行前请确认
hubble observe --since=1m -t l7 -o json
硬件要求按 README 说明

README 未说明

下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

基于 eBPF 的 Kubernetes 网络、服务与安全可观测性平台,透明看清服务间通信

基于 eBPF 的 Kubernetes 网络、服务与安全可观测性平台,提供流量追踪、指标采集和调用链可视化,帮你在集群里快速定位网络与安全策略问题。

核心能力

  • 基于 Cilium 与 eBPF 透明采集 L3/L4/L7 流量
  • 自动发现并可视化服务依赖图
  • 提供 HTTP、DNS、TCP 指标与延迟监控
  • 用 hubble observe 按标签和事件类型过滤流
  • 支持 allowlist/denylist 原始 FlowFilters 精细过滤

容易踩的坑

依赖 Cilium 提供 eBPF 数据面,需先部署 Cilium;Hubble UI 仍为 Beta,生产慎用;CLI 仅维护最新版本,需与受支持的 Cilium 版本搭配

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本v1.20.4
  1. v1.20.4最新正式版2026-11-06 · 2026-11-06 21:44 UTC

    Misc Changes:

    • chore(deps): update all github action dependencies (patch) (cilium/hubble#1831, @renovate[bot])
    • chore(deps): update dependency cilium/cilium to v1.20.4 (cilium/hubble#1833, @renovate[bot])
    • chore(deps): update dependency ubuntu to v26 (cilium/hubble#1834, @renovate[bot])
    • chore(deps): update go toolchain directive to v1.27.2 (cilium/hubble#1830, @renovate[bot])
    • chore(deps): update golang (patch) (cilium/hubble#1832, @renovate[bot])
    • chore(deps): update helm/kind-action action to v1.15.1 (cilium/hubble#1829, @renovate[bot])
    • chore(deps): update library/golang docker tag to v1.27.3 (cilium/hubble#1835, @renovate[bot])
    • ci: Move to a maintained release action (cilium/hubble#1827, @glibsm)
    • Update stable release to 1.20.2 (cilium/hubble#1828, @glibsm)
  2. v1.20.22026-10-07 · 2026-10-07 15:28 UTC
    查看更新说明

    Bugfixes:

    • Fix Hubble flow compact output for policy verdict events with default field masks (cilium/cilium#46672, @glrf)

    Misc Changes:

    • chore(deps): update actions/setup-go action to v7 (cilium/hubble#1809, @renovate[bot])
    • chore(deps): update azure/setup-helm action to v5.0.1 (cilium/hubble#1803, @renovate[bot])
    • chore(deps): update dependency cilium/cilium to v1.20.2 (cilium/hubble#1824, @renovate[bot])
    • chore(deps): update dependency helm/helm to v4.3.0 (cilium/hubble#1822, @renovate[bot])
    • chore(deps): update go toolchain directive to v1.26.6 (cilium/hubble#1813, @renovate[bot])
    • chore(deps): update golang to v1.27.1 (cilium/hubble#1820, @renovate[bot])
    • chore(deps): update library/golang:1.27.1-alpine docker digest to 8a5910f (cilium/hubble#1823, @renovate[bot])
    • chore(deps): update module github.com/google/cel-go to v0.29.0 [security] (cilium/hubble#1810, @renovate[bot])
    • chore(deps): update module go.mongodb.org/mongo-driver to v1.17.7 [security] (cilium/hubble#1797, @renovate[bot])
    • chore(deps): update module golang.org/x/net to v0.55.0 [security] (cilium/hubble#1805, @renovate[bot])
    • chore(deps): update module google.golang.org/grpc to v1.83.2 [security] (cilium/hubble#1821, @renovate[bot])
  3. v1.19.42026-06-05 · 2026-06-05 19:57 UTC
    查看更新说明

    1.19.4 - 2026-06-04

    Misc Changes:

    • chore(deps): update azure/setup-helm action to v5 (cilium/hubble#1783, @renovate[bot])
    • chore(deps): update dependency cilium/cilium to v1.19.4 (cilium/hubble#1786, @renovate[bot])
    • chore(deps): update dependency helm/helm to v4.2.0 (cilium/hubble#1787, @renovate[bot])
    • chore(deps): update golang to v1.26.4 (cilium/hubble#1789, @renovate[bot])
    • chore(deps): update module go.opentelemetry.io/otel to v1.41.0 [security] (cilium/hubble#1784, @renovate[bot])
  4. v1.19.32026-04-22 · 2026-04-22 17:31 UTC
    查看更新说明

    Important Security Updates:

    • chore(deps): update module github.com/moby/spdystream to v0.5.1 [security] (cilium/hubble#1775, @renovate[bot])

    Misc Changes:

    • chore(config): migrate Renovate config (cilium/hubble#1757, @renovate[bot])
    • chore(deps): update actions/setup-go action to v6.4.0 (cilium/hubble#1769, @renovate[bot])
    • chore(deps): update all github action dependencies (minor) (cilium/hubble#1756, @renovate[bot])
    • chore(deps): update dependency cilium/cilium to v1.18.7 (cilium/hubble#1758, @renovate[bot])
    • chore(deps): update dependency cilium/cilium to v1.19.2 (cilium/hubble#1765, @renovate[bot])
    • chore(deps): update dependency cilium/cilium to v1.19.3 (cilium/hubble#1774, @renovate[bot])
    • chore(deps): update dependency helm/helm to v3.20.1 (cilium/hubble#1763, @renovate[bot])
    • chore(deps): update dependency helm/helm to v3.20.2 (cilium/hubble#1771, @renovate[bot])
    • chore(deps): update golang to v1.25.7 (patch) (cilium/hubble#1755, @renovate[bot])
    • chore(deps): update golang to v1.26.0 (minor) (cilium/hubble#1759, @renovate[bot])
    • chore(deps): update golang to v1.26.1 (patch) (cilium/hubble#1762, @renovate[bot])
    • chore(deps): update golang to v1.26.2 (patch) (cilium/hubble#1772, @renovate[bot])
    • chore(deps): update library/golang:1.26.2-alpine docker digest to f853308 (cilium/hubble#1773, @renovate[bot])
    • chore(deps): update module google.golang.org/grpc to v1.79.3 [security] (cilium/hubble#1766, @renovate[bot])
    • Fix renovate config (cilium/hubble#1761, @glibsm)
    • Update stable release to 1.18.6 (cilium/hubble#1754, @glibsm)
    • vendor: Update cilium to v1.19.1 (cilium/hubble#1764, @glibsm)
  5. v1.18.62026-02-09 · 2026-02-09 18:37 UTC
    查看更新说明

    Misc Changes:

    • chore(deps): update actions/checkout action to v6.0.2 - autoclosed (cilium/hubble#1749, @renovate[bot])
    • chore(deps): update actions/setup-go action to v6.2.0 (cilium/hubble#1746, @renovate[bot])
    • chore(deps): update all github action dependencies (patch) (cilium/hubble#1747, @renovate[bot])
    • chore(deps): update dependency helm/helm to v3.20.0 (cilium/hubble#1750, @renovate[bot])
    • chore(deps): update golang to v1.25.6 (patch) (cilium/hubble#1748, @renovate[bot])
    • chore(deps): update library/golang:1.25.6-alpine docker digest to 98e6cff (cilium/hubble#1751, @renovate[bot])

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    License


    Network, Service & Security Observability for Kubernetes

    What is Hubble?

    Hubble is a fully distributed networking and security observability platform for cloud native workloads. It is built on top of Cilium and eBPF to enable deep visibility into the communication and behavior of services as well as the networking infrastructure in a completely transparent manner.

    Hubble can answer questions such as:

    Service dependencies & communication map:

    • What services are communicating with each other? How frequently? What does the service dependency graph look like?
    • What HTTP calls are being made? What Kafka topics does a service consume from or produce to?

    Operational monitoring & alerting:

    • Is any network communication failing? Why is communication failing? Is it DNS? Is it an application or network problem? Is the communication broken on layer 4 (TCP) or layer 7 (HTTP)?
    • Which services have experienced a DNS resolution problems in the last 5 minutes? Which services have experienced an interrupted TCP connection recently or have seen connections timing out? What is the rate of unanswered TCP SYN requests?

    Application monitoring:

    • What is the rate of 5xx or 4xx HTTP response codes for a particular service or across all clusters?
    • What is the 95th and 99th percentile latency between HTTP requests and responses in my cluster? Which services are performing the worst? What is the latency between two services?

    Security observability:

    • Which services had connections blocked due to network policy? What services have been accessed from outside the cluster? Which services have resolved a particular DNS name?

    Why Hubble?

    The Linux kernel technology eBPF is enabling visibility into systems and applications at a granularity and efficiency that was not possible before. It does so in a completely transparent way, without requiring the application to change or for the application to hide information. By building on top of Cilium, Hubble can leverage eBPF for visibility. By leveraging eBPF, all visibility is programmable and allows for a dynamic approach that minimizes overhead while providing deep and detailed insight where required. Hubble has been created and specifically designed to make best use of these new eBPF powers.

    Releases

    The Hubble CLI is backward compatible with all supported Cilium releases. For this reason, only the latest Hubble CLI version is maintained.

    VersionRelease DateMaintainedSupported Cilium VersionArtifacts
    v1.202026-10-01 (v1.20.2)YesCilium 1.20 and olderGitHub Release

    Component Stability

    Hubble project consists of several components (see Architecture section).

    While the core Hubble components have been running in production in multiple environments, new components continue to emerge as the project grows and expands in scope.

    Some components, due to their relatively young age, are still considered beta and have to be used with caution in critical production workloads.

    ComponentAreaState
    Hubble CLICoreStable
    Hubble ServerCoreStable
    Hubble MetricsCoreStable
    Hubble RelayMultinodeStable
    Hubble UIUIBeta

    Architecture

    Hubble Architecture

    Getting Started

    Features

    Service Dependency Graph

    Troubleshooting microservices application connectivity is a challenging task. Simply looking at "kubectl get pods" does not indicate dependencies between each service or external APIs or databases.

    Hubble enables zero-effort automatic discovery of the service dependency graph for Kubernetes Clusters at L3/L4 and even L7, allowing user-friendly visualization and filtering of those dataflows as a Service Map.

    See Hubble Service Map Tutorial for more examples.

    Service Map

    Metrics & Monitoring

    The metrics and monitoring functionality provides an overview of the state of systems and allow to recognize patterns indicating failure and other scenarios that require action. The following is a short list of example metrics, for a more detailed list of examples, see the Metrics Documentation.

    Networking Behavior

    Networking

    Network Policy Observation

    Network Policy

    HTTP Request/Response Rate & Latency

    HTTP

    DNS Request/Response Monitoring

    DNS

    Flow Visibility

    Flow visibility provides visibility into flow information on the network and application protocol level. This enables visibility into individual TCP connections, DNS queries, HTTP requests, Kafka communication, and much more.

    DNS Resolution

    Identifying pods which have received DNS response indicating failure:

    hubble observe --since=1m -t l7 -o json \
       | jq 'select(.l7.dns.rcode==3) | .destination.namespace + "/" + .destination.pod_name' \
       | sort | uniq -c | sort -r
      42 "starwars/jar-jar-binks-6f5847c97c-qmggv"
    

    Successful query & response:

    starwars/x-wing-bd86d75c5-njv8k            kube-system/coredns-5c98db65d4-twwdg      DNS Query deathstar.starwars.svc.cluster.local. A
    kube-system/coredns-5c98db65d4-twwdg       starwars/x-wing-bd86d75c5-njv8k           DNS Answer "10.110.126.213" TTL: 3 (Query deathstar.starwars.svc.cluster.local. A)
    

    Non-existent domain:

    starwars/jar-jar-binks-789c4b695d-ltrzm    kube-system/coredns-5c98db65d4-f4m8n      DNS Query unknown-galaxy.svc.cluster.local. A
    starwars/jar-jar-binks-789c4b695d-ltrzm    kube-system/coredns-5c98db65d4-f4m8n      DNS Query unknown-galaxy.svc.cluster.local. AAAA
    kube-system/coredns-5c98db65d4-twwdg       starwars/jar-jar-binks-789c4b695d-ltrzm   DNS Answer RCode: Non-Existent Domain TTL: 4294967295 (Query unknown-galaxy.starwars.svc.cluster.local. A)
    kube-system/coredns-5c98db65d4-twwdg       starwars/jar-jar-binks-789c4b695d-ltrzm   DNS Answer RCode: Non-Existent Domain TTL: 4294967295 (Query unknown-galaxy.starwars.svc.cluster.local. AAAA)
    

    HTTP Protocol

    Successful request & response with latency information:

    starwars/x-wing-bd86d75c5-njv8k:53410      starwars/deathstar-695d8f7ddc-lvj84:80    HTTP/1.1 GET http://deathstar/
    starwars/deathstar-695d8f7ddc-lvj84:80     starwars/x-wing-bd86d75c5-njv8k:53410     HTTP/1.1 200 1ms (GET http://deathstar/)
    

    TCP/UDP Packets

    Successful TCP connection:

    starwars/x-wing-bd86d75c5-njv8k:53410      starwars/deathstar-695d8f7ddc-lvj84:80    TCP Flags: SYN
    deathstar.starwars.svc.cluster.local:80    starwars/x-wing-bd86d75c5-njv8k:53410     TCP Flags: SYN, ACK
    starwars/x-wing-bd86d75c5-njv8k:53410      starwars/deathstar-695d8f7ddc-lvj84:80    TCP Flags: ACK, FIN
    deathstar.starwars.svc.cluster.local:80    starwars/x-wing-bd86d75c5-njv8k:53410     TCP Flags: ACK, FIN
    

    Connection timeout:

    starwars/r2d2-6694d57947-xwhtz:60948   deathstar.starwars.svc.cluster.local:8080     TCP Flags: SYN
    starwars/r2d2-6694d57947-xwhtz:60948   deathstar.starwars.svc.cluster.local:8080     TCP Flags: SYN
    starwars/r2d2-6694d57947-xwhtz:60948   deathstar.starwars.svc.cluster.local:8080     TCP Flags: SYN
    

    Network Policy Behavior

    Denied connection attempt:

    starwars/enterprise-5775b56c4b-thtwl:37800   starwars/deathstar-695d8f7ddc-lvj84:80(http)   Policy denied (L3)   TCP Flags: SYN
    starwars/enterprise-5775b56c4b-thtwl:37800   starwars/deathstar-695d8f7ddc-lvj84:80(http)   Policy denied (L3)   TCP Flags: SYN
    starwars/enterprise-5775b56c4b-thtwl:37800   starwars/deathstar-695d8f7ddc-lvj84:80(http)   Policy denied (L3)   TCP Flags: SYN
    

    Specifying Raw Flow Filters

    Hubble supports extensive set of filtering options that can be specified as a combination of allowlist and denylist. Hubble applies these filters as follows:

    for each flow:
      if flow does not match any of the allowlist filters:
        continue
      if flow matches any of the denylist filters:
        continue
      send flow to client
    

    You can pass these filters to hubble observe command as JSON-encoded FlowFilters. For example, to observe flows that match the following conditions:

    • Either the source or destination identity contains k8s:io.kubernetes.pod.namespace=kube-system or reserved:host label, AND

    • Neither the source nor destination identity contains k8s:k8s-app=kube-dns label:

      hubble observe \
        --allowlist '{"source_label":["k8s:io.kubernetes.pod.namespace=kube-system","reserved:host"]}' \
        --allowlist '{"destination_label":["k8s:io.kubernetes.pod.namespace=kube-system","reserved:host"]}' \
        --denylist '{"source_label":["k8s:k8s-app=kube-dns"]}' \
        --denylist '{"destination_label":["k8s:k8s-app=kube-dns"]}'
      

    Alternatively, you can also specify these flags as HUBBLE_{ALLOWLIST,DENYLIST} environment variables:

    cat > allowlist.txt <<EOF
    {"source_label":["k8s:io.kubernetes.pod.namespace=kube-system","reserved:host"]}
    {"destination_label":["k8s:io.kubernetes.pod.namespace=kube-system","reserved:host"]}
    EOF
    
    cat > denylist.txt <<EOF
    {"source_label":["k8s:k8s-app=kube-dns"]}
    {"destination_label":["k8s:k8s-app=kube-dns"]}
    EOF
    
    HUBBLE_ALLOWLIST=$(cat allowlist.txt)
    HUBBLE_DENYLIST=$(cat denylist.txt)
    export HUBBLE_ALLOWLIST
    export HUBBLE_DENYLIST
    
    hubble observe
    

    Note that --allowlist and --denylist filters get included in the request in addition to regular flow filters like --label or --namespace. Use --print-raw-filters flag to verify the exact filters that the Hubble CLI generates. For example:

    % hubble observe --print-raw-filters \
        -t drop \
        -n kube-system \
        --not --label "k8s:k8s-app=kube-dns" \
        --allowlist '{"source_label":["k8s:k8s-app=my-app"]}'
    allowlist:
    - '{"source_pod":["kube-system/"],"event_type":[{"type":1}]}'
    - '{"destination_pod":["kube-system/"],"event_type":[{"type":1}]}'
    - '{"source_label":["k8s:k8s-app=my-app"]}'
    denylist:
    - '{"source_label":["k8s:k8s-app=kube-dns"]}'
    - '{"destination_label":["k8s:k8s-app=kube-dns"]}'
    

    The output YAML can be saved to a file and passed to hubble observe command with --config flag. For example:

    % hubble observe --print-raw-filters --allowlist '{"source_label":["k8s:k8s-app=my-app"]}' > filters.yaml
    % hubble observe --config ./filters.yaml
    

    Community

    Join the Cilium Slack #hubble channel to chat with Cilium Hubble developers and other Cilium / Hubble users. This is a good place to learn about Hubble and Cilium, ask questions, and share your experiences.

    Learn more about Cilium.

    Authors

    Hubble is an open source project licensed under the Apache License. Everybody is welcome to contribute. The project is following the Governance Rules of the Cilium project. See CONTRIBUTING for instructions on how to contribute and details of the Code of Conduct.