跳到主要内容
版本:0.11

GreptimeDB Operator 的管理

GreptimeDB Operator 使用 Operator 模式Kubernetes 上管理 GreptimeDB 资源。

就像自动驾驶一样,GreptimeDB Operator 自动化了 GreptimeDB 集群和单机实例的部署、配置和管理。

GreptimeDB Operator 包括但不限于以下功能:

  • 自动化部署: 通过提供 GreptimeDBClusterGreptimeDBStandalone CRD 来自动化在 Kubernetes 上部署 GreptimeDB 集群和单机实例。

  • 多云支持: 用户可以在任何 Kubernetes 集群上部署 GreptimeDB,包括私有环境和公有云环境(如 AWS、GCP、阿里云等)。

  • 扩缩容: 通过修改 GreptimeDBCluster CR 中的 replicas 字段即可轻松实现 GreptimeDB 集群的扩缩容。

  • 监控: 通过在 GreptimeDBCluster CR 中提供 monitoring 字段来自动化部署基于 GreptimeDB 的监控组件。

本指南将展示如何在 Kubernetes 上安装、升级、配置和卸载 GreptimeDB Operator。

备注

以下输出可能会因 Helm chart 版本和具体环境的不同而有细微差别。

前置依赖

  • Kubernetes >= v1.18.0
  • kubectl >= v1.18.0
  • Helm >= v3.0.0

生产环境部署

对于生产环境部署,推荐使用 Helm 来安装 GreptimeDB Operator。

安装

你可以参考 安装和验证 GreptimeDB Operator 获取详细的指导。

备注

如果你使用 Argo CD 来部署应用,请确保 Application 已设置 ServerSideApply=true 以启用 server-side apply(其他 GitOps 工具可能也有类似的设置)。

升级

我们总是将最新版本的 GreptimeDB Operator 作为 Helm chart 发布在我们的官方 Helm 仓库

当最新版本的 GreptimeDB Operator 发布时,您可以通过运行以下命令来升级 GreptimeDB Operator。

更新 Helm 仓库

helm repo update greptime
期望输出
Hang tight while we grab the latest from your chart repositories...
...Successfully got an update from the "greptime" chart repository
Update Complete. ⎈Happy Helming!⎈

你可以使用以下命令来搜索 GreptimeDB Operator 的最新版本:

helm search repo greptime/greptimedb-operator
预期输出
NAME                        	CHART VERSION	APP VERSION  	DESCRIPTION
greptime/greptimedb-operator 0.2.9 0.1.3-alpha.1 The greptimedb-operator Helm chart for Kubernetes.

如果你想列出所有可用的版本,你可以使用以下命令:

helm search repo greptime/greptimedb-operator --versions

升级 GreptimeDB Operator

你可以通过运行以下命令升级到最新发布的 GreptimeDB Operator 版本:

helm -n greptimedb-admin upgrade greptimedb-operator greptime/greptimedb-operator
期望输出
Release "greptimedb-operator" has been upgraded. Happy Helming!
NAME: greptimedb-operator
LAST DEPLOYED: Mon Oct 28 19:30:52 2024
NAMESPACE: greptimedb-admin
STATUS: deployed
REVISION: 2
TEST SUITE: None
NOTES:
***********************************************************************
Welcome to use greptimedb-operator
Chart version: 0.2.9
GreptimeDB Operator version: 0.1.3-alpha.1
***********************************************************************

Installed components:
* greptimedb-operator

The greptimedb-operator is starting, use `kubectl get deployments greptimedb-operator -n greptimedb-admin` to check its status.

如果你想升级到特定版本,你可以使用以下命令:

helm -n greptimedb-admin upgrade greptimedb-operator greptime/greptimedb-operator --version <version>

升级完成后,你可以使用以下命令来验证安装:

helm list -n greptimedb-admin
期望输出
NAME                    NAMESPACE               REVISION        UPDATED                                 STATUS          CHART                           APP VERSION  
greptimedb-operator greptimedb-admin 1 2024-10-30 17:46:45.570975 +0800 CST deployed greptimedb-operator-0.2.9 0.1.3-alpha.1

CRDs

这里将有两种类型的 CRD 与 GreptimeDB Operator 一起安装:GreptimeDBClusterGreptimeDBStandalone

你可以使用以下命令来验证安装:

kubectl get crd | grep greptime
期望输出
greptimedbclusters.greptime.io      2024-10-28T08:46:27Z
greptimedbstandalones.greptime.io 2024-10-28T08:46:27Z

默认情况下,GreptimeDB Operator chart 将管理 CRDs 的安装和升级,用户不需要手动管理它们。如果你想了解这两类 CRD 的具体定义,可参考 GreptimeDB Operator 的 API 文档

配置

GreptimeDB Operator chart 提供了一组配置选项,允许您自行配置,您可以参考 GreptimeDB Operator Helm Chart 来获取更多详细信息。

你可以创建一个 values.yaml 来配置 GreptimeDB Operator chart (完整的 values.yaml 配置可以参考 chart),例如:

image:
# -- The image registry
registry: docker.io
# -- The image repository
repository: greptime/greptimedb-operator
# -- The image pull policy for the controller
imagePullPolicy: IfNotPresent
# -- The image tag
tag: latest
# -- The image pull secrets
pullSecrets: []

replicas: 1

resources:
limits:
cpu: 200m
memory: 256Mi
requests:
cpu: 100m
memory: 128Mi
备注

中国大陆用户如有网络访问问题,可将上文中的 image.registry 配置为阿里云镜像仓库地址 greptime-registry.cn-hangzhou.cr.aliyuncs.com

你可以使用以下命令来安装带有自定义配置的 GreptimeDB Operator:

helm -n greptimedb-admin install greptimedb-operator greptime/greptimedb-operator -f values.yaml

如果你想使用自定义配置升级 GreptimeDB Operator,你可以使用以下命令:

helm -n greptimedb-admin upgrade greptimedb-operator greptime/greptimedb-operator -f values.yaml

你可以使用以下一条同样的命令来安装或升级带有自定义配置的 GreptimeDB Operator:

helm -n greptimedb-admin upgrade --install greptimedb-operator greptime/greptimedb-operator -f values.yaml

卸载

你可以使用 helm 命令来卸载 GreptimeDB Operator:

helm -n greptimedb-admin uninstall greptimedb-operator

默认情况下,卸载 GreptimeDB Operator 时不会删除 CRDs。

危险

如果你确实想要删除 CRDs,你可以使用以下命令:

kubectl delete crd greptimedbclusters.greptime.io greptimedbstandalones.greptime.io

删除 CRDs 后,相关资源将被删除。