Pixie项目开发环境搭建与组件开发指南

Pixie项目开发环境搭建与组件开发指南

pixie Pixie是一个开源的分布式跟踪和分析工具,用于监控和诊断Kubernetes应用程序的性能。 - 功能:分布式跟踪;性能监控;诊断;Kubernetes应用程序管理。 - 特点:易于使用;支持多种后端;实时性能分析;与Kubernetes集成。 pixie 项目地址: https://gitcode.com/gh_mirrors/pixie/pixie

项目概述

Pixie是一个开源的Kubernetes原生观测平台,主要由三个核心组件构成:

  1. Pixie Cloud:作为控制平面,负责管理Vizier实例和托管用户界面
  2. Vizier:作为数据平面,包含部署在K8s集群中的代理组件
  3. CLI:命令行工具,用于部署和查询Vizier实例

本文将详细介绍如何搭建Pixie的开发环境以及各组件开发的具体流程。

开发环境准备

基础环境配置

Pixie提供了便捷的Docker开发环境,通过以下步骤即可快速搭建:

  1. 确保系统已安装Docker引擎
  2. 安装coreutils工具包(包含realpath命令)
    • Ubuntu系统:sudo apt-get install coreutils
    • macOS系统:brew install coreutils
  3. 执行启动脚本进入开发容器:
    ./scripts/run_docker.sh
    

该容器内已预置所有必要的开发工具链,包括Bazel构建系统和Skaffold部署工具等。

Pixie Cloud开发指南

Pixie Cloud是Pixie的控制中枢,开发者可按以下步骤搭建开发版本:

1. 创建命名空间

kubectl create namespace plc

2. 加载配置

./scripts/create_cloud_secrets.sh

3. 部署依赖服务

kustomize build k8s/cloud_deps/base/elastic/operator | kubectl apply -f -
kustomize build k8s/cloud_deps/public | kubectl apply -f -

4. 修改Kustomize配置

perl -pi -e "s|newTag: latest|newTag: \"\"|g" k8s/cloud/public/kustomization.yaml
perl -pi -e "s|pixie-prod|pixie-dev|g" k8s/cloud/public/kustomization.yaml

5. 配置镜像仓库

skaffold config set default-repo <your-registry>

6. 部署开发版本

skaffold run -f skaffold/skaffold_cloud.yaml -p public

7. 配置本地DNS

bazel run //src/utils/dev_dns_updater:dev_dns_updater -- --domain-name "dev.withpixie.dev"

连接Vizier到开发环境

export PL_CLOUD_ADDR=dev.withpixie.dev:443
export PL_TESTING_ENV=dev

Vizier组件开发

Vizier是运行在集群中的数据处理器,负责查询执行和PEM管理。

开发测试流程

  1. 构建并运行单元测试:
bazel test //src/<path_to_test> --test_output=errors -j $(nproc)
  1. 部署开发版本:
skaffold run -f skaffold/skaffold_vizier.yaml --default-repo=<your-registry>

注意:需要为pl命名空间配置imagePullSecrets以使用私有镜像仓库。

CLI工具开发

开发版本的CLI可以通过Bazel直接运行:

bazel run //src/pixie_cli:px -- <command>

例如:

  • 部署命令:bazel run //src/pixie_cli:px -- deploy
  • 运行查询:bazel run //src/pixie_cli:px -- run px/cluster

开发注意事项

  1. 当同时开发Cloud和Vizier时,务必设置正确的环境变量指向开发环境
  2. 每次代码变更后需要重新运行skaffold命令以构建和部署新版本
  3. 开发过程中建议使用独立的Kubernetes命名空间和镜像仓库
  4. 测试前确保清理旧版本资源(如使用px delete --clobber

通过以上步骤,开发者可以快速搭建完整的Pixie开发环境,并针对各组件进行定制开发和测试。

pixie Pixie是一个开源的分布式跟踪和分析工具,用于监控和诊断Kubernetes应用程序的性能。 - 功能:分布式跟踪;性能监控;诊断;Kubernetes应用程序管理。 - 特点:易于使用;支持多种后端;实时性能分析;与Kubernetes集成。 pixie 项目地址: https://gitcode.com/gh_mirrors/pixie/pixie

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

朱丛溢

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值