CloudNativePG 开发环境搭建完全指南

CloudNativePG 开发环境搭建完全指南

cloudnative-pg CloudNativePG is a Kubernetes operator that covers the full lifecycle of a PostgreSQL database cluster with a primary/standby architecture, using native streaming replication cloudnative-pg 项目地址: https://gitcode.com/gh_mirrors/cl/cloudnative-pg

前言

CloudNativePG 是一个开源的 Kubernetes Operator,用于在 Kubernetes 上部署和管理 PostgreSQL 集群。本文将详细介绍如何搭建 CloudNativePG 的开发环境,帮助开发者快速上手项目开发。

环境准备

在开始开发 CloudNativePG 之前,需要确保本地开发环境满足以下基本要求:

通用要求

  • Go 1.21+:CloudNativePG 使用 Go 语言开发
  • GNU Make:项目构建工具
  • Kind:用于本地 Kubernetes 集群测试(v0.20.x 或更高版本)
  • golangci-lint:Go 代码静态分析工具
  • goreleaser:Go 项目发布工具
  • Operator SDK CLI:Operator 开发框架

各平台特殊要求

Linux 系统

在基于 Debian 的发行版上,需要安装以下软件包:

sudo apt-get install -y \
  coreutils \
  diffutils \
  findutils \
  git \
  gpg \
  jq \
  make \
  pandoc \
  sed \
  tar \
  util-linux \
  zlib1g
macOS 系统

推荐使用 Homebrew 安装所需组件:

brew install go \
  kind \
  golangci/tap/golangci-lint \
  goreleaser \
  jq \
  make \
  coreutils \
  diffutils \
  findutils \
  git \
  gpg \
  gnu-getopt \
  gnu-sed \
  gnu-tar \
  pandoc \
  zlib

注意:对于 Apple Silicon Mac,Homebrew 默认安装在 /opt/homebrew 目录下。

Windows WSL2

WSL2 环境下可参考 Linux 系统的安装指南,同时需要确保满足 Kind 在 WSL2 下的特殊要求。

环境验证

安装完成后,在项目根目录下运行以下命令验证环境配置:

make help

该命令会显示可用的 Make 任务列表,确认 GNU Make 已正确安装。

项目构建与部署

本地构建

  1. 进入项目目录并切换到 main 分支:
cd cloudnative-pg
git checkout main
  1. 执行构建和部署脚本:
./hack/setup-cluster.sh create load deploy

该脚本会完成以下操作:

  • 构建 Operator 镜像
  • 创建本地 Kind 集群
  • 部署构建好的 Operator

验证部署

部署完成后,可通过以下命令验证 Operator 是否正常运行:

kubectl get deploy -n cnpg-system cnpg-controller-manager

清理环境

测试完成后,可销毁本地集群:

./hack/setup-cluster.sh destroy

开发建议

  1. 定期清理:建议定期执行 make distclean 清理构建产物,确保使用最新版本的 Go 二进制文件。

  2. 端口冲突:在 macOS 上,AirPlay 会占用 5000 端口,可能与 Docker 仓库端口冲突,建议关闭 AirPlay。

  3. 环境变量:macOS 用户需要正确配置 shell 环境变量,确保 GNU 工具链优先于系统默认工具。

结语

通过本文的指导,您已成功搭建 CloudNativePG 的开发环境。现在可以开始进行功能开发或问题修复。建议在开发新功能前,先熟悉项目代码结构和开发规范。

如需进一步了解 CloudNativePG 的使用,可以参考项目文档中的快速入门指南。

cloudnative-pg CloudNativePG is a Kubernetes operator that covers the full lifecycle of a PostgreSQL database cluster with a primary/standby architecture, using native streaming replication cloudnative-pg 项目地址: https://gitcode.com/gh_mirrors/cl/cloudnative-pg

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

郁如炜

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

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

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

打赏作者

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

抵扣说明:

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

余额充值