Kubeshark Helm Chart 部署与配置完全指南
2025-07-06 05:01:03作者:冯梦姬Eddie
什么是Kubeshark
Kubeshark是一个Kubernetes网络流量分析工具,它能够捕获、分析和可视化集群内的所有网络流量。通过部署Kubeshark,开发者和运维人员可以深入了解微服务间的通信情况,快速诊断网络问题。
Helm Chart 安装方式
Kubeshark提供了两种Helm Chart安装方式:
官方仓库安装(推荐)
- 首先添加Kubeshark的Helm仓库:
helm repo add kubeshark https://helm.kubeshark.co
- 然后安装Kubeshark:
helm install kubeshark kubeshark/kubeshark
本地安装(适合定制化需求)
- 克隆仓库到本地:
git clone git@github.com:kubeshark/kubeshark.git --depth 1
cd kubeshark/helm-chart
- 可以预览渲染的模板:
helm template .
- 进行安装:
helm install kubeshark .
基础配置与使用
访问Web界面
安装完成后,可以通过端口转发访问Web界面:
kubectl port-forward service/kubeshark-front 8899:80
然后在浏览器中访问http://localhost:8899
存储限制调整
默认情况下,Kubeshark使用500MiB的存储空间。对于大规模集群,你可能需要增加这个限制:
--set tap.storageLimit=5Gi
许可证配置
如果需要使用专业版功能,可以通过以下方式添加许可证:
--set license=YOUR_LICENSE_GOES_HERE
高级配置选项
Ingress配置(适用于EKS)
在AWS EKS环境中,可以通过配置Ingress来暴露Kubeshark服务:
- 创建values.yaml文件:
tap:
ingress:
enabled: true
className: "alb"
host: ks.example.com
tls: []
annotations:
alb.ingress.kubernetes.io/certificate-arn: arn:aws:acm:us-east-1:7..8:certificate/b...65c
alb.ingress.kubernetes.io/target-type: ip
alb.ingress.kubernetes.io/scheme: internet-facing
- 使用配置文件安装:
helm install kubeshark kubeshark/kubeshark -f values.yaml
IPv6支持
如果你的环境不支持IPv6,可以禁用此功能:
helm install kubeshark kubeshark/kubeshark --set tap.ipv6=false
资源限制配置
Kubeshark包含多个组件,可以为每个组件单独配置资源限制:
tap:
resources:
worker:
limits:
cpu: "750m"
memory: "1Gi"
requests:
cpu: "50m"
memory: "50Mi"
hub:
limits:
cpu: "750m"
memory: "1Gi"
requests:
cpu: "50m"
memory: "50Mi"
SAML认证集成
Kubeshark支持通过SAML进行身份验证,配置步骤如下:
准备工作
- 生成X.509证书和密钥:
openssl genrsa -out mykey.key 2048
openssl req -new -key mykey.key -out mycsr.csr
openssl x509 -signkey mykey.key -in mycsr.csr -req -days 365 -out mycert.crt
- 在SAML身份提供商(IDP)中配置:
- 元数据URL:
http://localhost:8899/saml/metadata
- ACS URL:
http://localhost:8899/saml/acs
- SLO URL:
http://localhost:8899/saml/slo
- 元数据URL:
配置values.yaml
tap:
auth:
enabled: true
type: saml
saml:
idpMetadataUrl: "https://your-idp-provider.com/samlp/metadata/..."
x509crt: |
-----BEGIN CERTIFICATE-----
MIIDlTCCAn0CFFRUzMh+dZvp+FvWd4gRaiBVN8EvMA0GCSqGSIb3DQEBCwUAMIGG
...
-----END CERTIFICATE-----
x509key: |
-----BEGIN PRIVATE KEY-----
MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDlgDFKsRHj+mok
...
-----END PRIVATE KEY-----
性能优化建议
- 内核模块优化:启用PF_RING内核模块可以提高数据包捕获性能:
tap:
kernelModule:
enabled: true
image: "kubeshark/pf-ring-module:all"
- 持久化存储:对于长期运行的实例,建议使用持久化存储:
tap:
persistentStorage: true
storageLimit: "10Gi"
- 目标命名空间限定:只监控必要的命名空间以减少资源消耗:
tap:
namespaces: ["production", "staging"]
常见问题排查
-
无法捕获流量:
- 检查是否配置了正确的命名空间
- 验证节点是否满足内核要求
- 检查网络策略是否阻止了流量捕获
-
Web界面无法访问:
- 确认端口转发命令正确执行
- 检查服务是否正常运行:
kubectl get pods,svc
-
存储空间不足:
- 增加存储限制:
--set tap.storageLimit=5Gi
- 考虑启用持久化存储
- 增加存储限制:
通过本文介绍的配置选项,你可以根据实际需求灵活部署和定制Kubeshark,从而更好地监控和分析Kubernetes集群中的网络流量。