首页
/ Kubeshark Helm Chart 部署与配置完全指南

Kubeshark Helm Chart 部署与配置完全指南

2025-07-06 05:01:03作者:冯梦姬Eddie

什么是Kubeshark

Kubeshark是一个Kubernetes网络流量分析工具,它能够捕获、分析和可视化集群内的所有网络流量。通过部署Kubeshark,开发者和运维人员可以深入了解微服务间的通信情况,快速诊断网络问题。

Helm Chart 安装方式

Kubeshark提供了两种Helm Chart安装方式:

官方仓库安装(推荐)

  1. 首先添加Kubeshark的Helm仓库:
helm repo add kubeshark https://helm.kubeshark.co
  1. 然后安装Kubeshark:
helm install kubeshark kubeshark/kubeshark

本地安装(适合定制化需求)

  1. 克隆仓库到本地:
git clone git@github.com:kubeshark/kubeshark.git --depth 1
cd kubeshark/helm-chart
  1. 可以预览渲染的模板:
helm template .
  1. 进行安装:
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服务:

  1. 创建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
  1. 使用配置文件安装:
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进行身份验证,配置步骤如下:

准备工作

  1. 生成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
  1. 在SAML身份提供商(IDP)中配置:
    • 元数据URL: http://localhost:8899/saml/metadata
    • ACS URL: http://localhost:8899/saml/acs
    • SLO URL: http://localhost:8899/saml/slo

配置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-----

性能优化建议

  1. 内核模块优化:启用PF_RING内核模块可以提高数据包捕获性能:
tap:
  kernelModule:
    enabled: true
    image: "kubeshark/pf-ring-module:all"
  1. 持久化存储:对于长期运行的实例,建议使用持久化存储:
tap:
  persistentStorage: true
  storageLimit: "10Gi"
  1. 目标命名空间限定:只监控必要的命名空间以减少资源消耗:
tap:
  namespaces: ["production", "staging"]

常见问题排查

  1. 无法捕获流量

    • 检查是否配置了正确的命名空间
    • 验证节点是否满足内核要求
    • 检查网络策略是否阻止了流量捕获
  2. Web界面无法访问

    • 确认端口转发命令正确执行
    • 检查服务是否正常运行:kubectl get pods,svc
  3. 存储空间不足

    • 增加存储限制:--set tap.storageLimit=5Gi
    • 考虑启用持久化存储

通过本文介绍的配置选项,你可以根据实际需求灵活部署和定制Kubeshark,从而更好地监控和分析Kubernetes集群中的网络流量。