认证
此提供商需要身份验证。
- cilium_base_endpoint: cilium hubble relay 的基础端点(必需:True,敏感:False)
在工作流中
此提供商不能用作工作流中的"步骤"或"操作"。如果您想使用它,请通过在 GitHub 仓库 创建问题告诉我们。
拓扑
此提供商向 Keep 拉取拓扑。可用于关联和映射,并作为警报和事件的上下文。
概述
TIP
Cilium provider 处于 Beta 阶段,尚未支持身份验证。
目前从您的 kubernetes 集群拉取拓扑数据的方法是运行:
bash
# hubble-relay 通常安装在 kube-system 中,但取决于您的集群。
kubectl port-forward -n kube-system svc/hubble-relay 4245:80然后使用 localhost:4245 拉取拓扑数据。
如果您需要帮助连接 Cilium provider,请联系我们。
Cilium provider 利用 Hubble 的网络流数据自动发现服务依赖关系并构建 Kubernetes 应用程序的拓扑图。
身份验证参数
| 参数 | 描述 | 示例 |
|---|---|---|
cilium_base_endpoint | Cilium Hubble relay 的基础端点 | localhost:4245 |
输出
Provider 返回拓扑信息,包括:
- 服务名称及其依赖关系
- 命名空间信息
- Pod 标签和集群元数据
- 服务之间的基于网络的关系
服务发现逻辑
Provider 使用以下层级识别服务:
- 工作负载名称(如果可用)
- Kubernetes 标签(
k8s:app=或k8s:app.kubernetes.io/name=) - Pod 名称(去除部署后缀)
要求
- 运行中安装了 Cilium 的 Kubernetes 集群
- Hubble 已启用并可通过 gRPC 访问
- 在 Cilium 中启用了网络可见性(流日志)
限制
- 仅捕获 Pod 之间的活跃网络流
- 服务发现仅限于具有适当 Kubernetes 标签的 Pod
- 需要直接访问 Hubble relay 端点
相关链接
Google Kubernetes Engine 特定说明
如果您使用的是 GKE 集群,则无法将 Keep 直接连接到 Google 托管的 hubble-relay,因为:
- hubble-relay 仅在安全模式下运行。
- hubble-relay 需要客户端证书身份验证。
但是,Keep 目前不支持这些功能。
作为一种变通方法,您可以添加一个 NGINX Pod,监听明文 HTTP 端口并使用 hubble-relay 证书将请求代理到 hubble-relay 安全端口。
以下是运行明文 NGINX 代理的示例:
yaml
---
apiVersion: v1
kind: ConfigMap
metadata:
name: hubble-relay-insecure-nginx
namespace: gke-managed-dpv2-observability
data:
nginx.conf: |
user nginx;
worker_processes auto;
error_log /dev/stdout notice;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /dev/stdout main;
server {
listen 80;
http2 on;
location / {
grpc_pass grpcs://hubble-relay.gke-managed-dpv2-observability.svc.cluster.local:443;
grpc_ssl_certificate /etc/nginx/certs/client.crt;
grpc_ssl_certificate_key /etc/nginx/certs/client.key;
grpc_ssl_trusted_certificate /etc/nginx/certs/hubble-relay-ca.crt;
}
}
}
---
kind: Deployment
apiVersion: apps/v1
metadata:
name: hubble-relay-insecure
namespace: gke-managed-dpv2-observability
labels:
k8s-app: hubble-relay-insecure
app.kubernetes.io/name: hubble-relay-insecure
app.kubernetes.io/part-of: cilium
spec:
replicas: 1
selector:
matchLabels:
k8s-app: hubble-relay-insecure
template:
metadata:
labels:
k8s-app: hubble-relay-insecure
app.kubernetes.io/name: hubble-relay-insecure
app.kubernetes.io/part-of: cilium
spec:
securityContext:
fsGroup: 1000
seccompProfile:
type: RuntimeDefault
containers:
- name: frontend
image: nginx:alpine
ports:
- name: http
containerPort: 80
volumeMounts:
- name: hubble-relay-insecure-nginx-conf
mountPath: /etc/nginx/
readOnly: true
- name: hubble-relay-client-certs
mountPath: /etc/nginx/certs/
readOnly: true
volumes:
- configMap:
name: hubble-relay-insecure-nginx
name: hubble-relay-insecure-nginx-conf
- name: hubble-relay-client-certs
projected:
defaultMode: 0400
sources:
- secret:
name: hubble-relay-client-certs
items:
- key: ca.crt
path: hubble-relay-ca.crt
- key: tls.crt
path: client.crt
- key: tls.key
path: client.key
---
kind: Service
apiVersion: v1
metadata:
name: hubble-relay-insecure
namespace: gke-managed-dpv2-observability
labels:
k8s-app: hubble-relay-insecure
app.kubernetes.io/name: hubble-relay-insecure
app.kubernetes.io/part-of: cilium
spec:
type: ClusterIP
selector:
k8s-app: hubble-relay-insecure
ports:
- name: http
port: 80
targetPort: 80现在您可以使用 hubble-relay-insecure.gke-managed-dpv2-observability:80 地址添加 Cilium provider 来连接带有 Google 托管 hubble-relay 的 Keep。