Elastic Cloud on Kubernetes (ECK) 开发环境搭建指南

Elastic Cloud on Kubernetes (ECK) 开发环境搭建指南

cloud-on-k8s Elastic Cloud on Kubernetes cloud-on-k8s 项目地址: https://gitcode.com/gh_mirrors/cl/cloud-on-k8s

前言

Elastic Cloud on Kubernetes (ECK) 是一个在 Kubernetes 上运行 Elasticsearch、Kibana、APM Server 等 Elastic Stack 组件的官方解决方案。本文将详细介绍如何搭建 ECK 项目的开发环境,帮助开发者快速上手项目开发工作。

开发环境要求

在开始之前,请确保您的系统满足以下基本要求:

基础工具

  1. Go 语言环境:版本不低于 1.17,用于编译和运行项目代码
  2. golangci-lint:Go 语言的静态代码分析工具,用于代码质量检查
  3. kubectl:Kubernetes 命令行工具,版本不低于 1.14
  4. kubebuilder:Kubernetes Operator SDK,版本不低于 2.0.0
  5. Docker:容器运行时环境,版本不低于 19.0.0,建议安装 buildx 扩展以支持多架构构建
  6. Helm:Kubernetes 包管理工具,版本不低于 3.2.0,推荐使用 3.9.x 版本
  7. helm-unittest:Helm 图表单元测试插件(仅在开发 Helm 图表时需要)

Kubernetes 环境

您可以选择以下任意一种 Kubernetes 环境:

  • 本地开发集群(Minikube 或 Kind)
  • 云服务商托管的 Kubernetes 集群(如 GKE、AKS 等)

获取项目源码

通过以下命令获取 ECK 项目源码:

git clone <项目仓库地址>
cd cloud-on-k8s

环境检查

运行以下命令检查所有依赖是否已正确安装:

make check-requisites

开发环境配置

1. 安装项目依赖

make dependencies

该命令会下载项目编译所需的 Go 库依赖。

2. 配置 Kubernetes 集群

根据您的需求选择以下任意一种方式配置开发集群:

使用 Minikube
make bootstrap-minikube
使用 Kind
make switch-kind bootstrap-cloud
使用云服务商集群
  • GKE(Google Kubernetes Engine):

    make switch-gke bootstrap-cloud
    
  • AKS(Azure Kubernetes Service):

    make switch-aks bootstrap-cloud
    

3. 配置 Docker 镜像仓库

默认使用 Elastic 官方镜像仓库 docker.elastic.coeck-dev 命名空间。您需要执行 docker login 进行认证后才能推送镜像。

如需使用其他镜像仓库,可创建 .registry.env 文件进行配置。例如,使用 Google Container Registry:

REGISTRY = eu.gcr.io
REGISTRY_NAMESPACE = my-gcloud-project
E2E_REGISTRY_NAMESPACE = my-gcloud-project

部署 Operator

本地运行 Operator

make run

部署到 Kubernetes 集群

make deploy

应用示例资源

make samples

测试运行

单元测试和集成测试

make unit integration

E2E 测试

E2E 测试将在 e2e-mercurye2e-venus 命名空间中运行。首先启动 Operator:

make run

然后在另一个终端中运行:

make e2e-local

APM 追踪配置

ECK 集成了 Elastic APM 追踪功能。要启用 APM 追踪,请运行:

ENABLE_TRACING=true \
ELASTIC_APM_SERVER_URL=https://<apm-server-url> \
ELASTIC_APM_SECRET_TOKEN=<token> \
ELASTIC_APM_VERIFY_SERVER_CERT=false \
make run

开发模式

使用 --development 标志启动 Operator 可启用开发模式,该模式下提供以下额外功能:

| 标志 | 描述 | | ---- | ---- | | auto-port-forward | 允许 Operator 在本地运行(Kubernetes 集群外部),通过端口转发连接到远程集群 | | debug-http-listen | 调试服务器监听地址,提供 pprof 端点访问,默认为 localhost:6060 |

学习资源

为了更好理解 ECK 的工作原理,建议阅读以下 Kubernetes 核心概念:

  1. 资源(Resources):理解 Kubernetes 中的自定义资源定义(CRD)
  2. 控制器(Controllers):了解 Kubernetes 控制器的基本工作原理
  3. 控制器管理器(Controller Managers):掌握控制器管理器的角色和功能

结语

通过本文的指导,您应该已经成功搭建了 ECK 的开发环境,并了解了基本的开发流程。接下来可以开始探索 ECK 的源代码,参与功能开发或问题修复。建议从简单的示例开始,逐步深入理解 ECK 的架构设计和工作原理。

cloud-on-k8s Elastic Cloud on Kubernetes cloud-on-k8s 项目地址: https://gitcode.com/gh_mirrors/cl/cloud-on-k8s

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

尤迅兰Livia

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

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

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

打赏作者

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

抵扣说明:

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

余额充值