使用Helm Chart在GKE上部署YugabyteDB集群指南

使用Helm Chart在GKE上部署YugabyteDB集群指南

yugabyte-db yugabyte/yugabyte-db: 是 YugaByte DB 的官方仓库,一个高性能、高可扩展、分布式的 SQL 数据库,支持 PostgreSQL 兼容性。适合对分布式数据库、SQL 数据库和云原生应用的开发者。 yugabyte-db 项目地址: https://gitcode.com/gh_mirrors/yu/yugabyte-db

前言

YugabyteDB是一个高性能的分布式SQL数据库,它结合了NoSQL系统的可扩展性和关系型数据库的ACID事务特性。本文将详细介绍如何在Google Kubernetes Engine(GKE)上使用Helm Chart部署单可用区的YugabyteDB集群。

环境准备

基础要求

在开始部署前,请确保满足以下条件:

  1. GKE集群:运行Kubernetes 1.20或更高版本
  2. 资源要求:默认配置需要至少12个CPU核心和45GB内存
  3. Helm客户端:版本3.4或更高
  4. 系统配置:建议为每个节点设置适当的ulimit值

工具安装与配置

  1. Google Cloud SDK安装

    # 设置默认项目
    gcloud config set project yugabyte
    # 设置默认计算区域
    gcloud config set compute/zone us-west1-b
    
  2. kubectl安装:确保安装与GKE版本兼容的kubectl

  3. Helm验证

    helm version
    

    应显示类似v3.x.x的版本号,Helm 3不再需要tiller组件

创建GKE集群

对于生产环境,建议创建私有Kubernetes集群:

gcloud container clusters create cluster_name \
  --enable-private-nodes \
  --machine-type=n1-standard-8

重要说明

  • 私有集群需要配置Cloud NAT以实现互联网访问
  • n1-standard-8机器类型提供8个CPU核心和30GB内存
  • 默认配置需要至少3个这样的节点

YugabyteDB集群部署

1. 添加Helm仓库

helm repo add yugabytedb https://charts.yugabyte.com
helm repo update

2. 验证Chart版本

helm search repo yugabytedb/yugabyte --version <当前稳定版本>

3. 安装YugabyteDB

kubectl create namespace yb-demo
helm install yb-demo yugabytedb/yugabyte \
  --version <当前稳定版本> \
  --namespace yb-demo \
  --wait

集群状态检查

查看部署状态

helm status yb-demo -n yb-demo

检查Pod状态

kubectl get pods --namespace yb-demo

预期看到3个yb-master和3个yb-tserver Pod都处于Running状态

检查服务状态

kubectl get services --namespace yb-demo

应看到yb-master-ui和yb-tserver-service等服务的状态

连接数据库

使用内置Shell工具

  1. YSQL Shell连接

    kubectl exec -n yb-demo -it yb-tserver-0 -- ysqlsh -h yb-tserver-0.yb-tservers.yb-demo
    
  2. YCQL Shell连接

    kubectl exec -n yb-demo -it yb-tserver-0 -- ycqlsh yb-tserver-0.yb-tservers.yb-demo
    

外部客户端连接

  1. 获取yb-tserver-service的外部IP:

    kubectl get services --namespace yb-demo
    
  2. 使用以下端口连接:

    • YSQL: 5433
    • YCQL: 9042

高级配置

独立负载均衡器

默认配置使用两个LoadBalancer。如需为每个API端点使用独立LoadBalancer:

helm install yb-demo yugabytedb/yugabyte \
  -f https://raw.githubusercontent.com/yugabyte/charts/master/stable/yugabyte/expose-all.yaml \
  --version <当前稳定版本> \
  --namespace yb-demo \
  --wait

内部负载均衡器

在GCP上为YB-TServer服务创建内部LoadBalancer:

helm install yugabyte \
  -f https://raw.githubusercontent.com/yugabyte/charts/master/stable/yugabyte/expose-all.yaml \
  --version <当前稳定版本> \
  --namespace yb-demo \
  --name yb-demo \
  --set annotations.tserver.loadbalancer."cloud\.google\.com/load-balancer-type"=Internal \
  --wait

集群清理

删除集群时,需要手动清理持久化存储:

helm delete yb-demo --purge
kubectl delete pvc --namespace yb-demo -l app=yb-master
kubectl delete pvc --namespace yb-demo -l app=yb-tserver

最佳实践建议

  1. 生产环境配置

    • 考虑增加节点数量和资源分配
    • 配置适当的持久化存储类
  2. 监控与告警

    • 部署Prometheus和Grafana监控集群状态
    • 设置关键指标告警
  3. 备份策略

    • 配置定期备份到Google Cloud Storage
    • 测试恢复流程

通过以上步骤,您已在GKE上成功部署了一个功能完整的YugabyteDB集群,可以开始构建您的分布式应用程序了。

yugabyte-db yugabyte/yugabyte-db: 是 YugaByte DB 的官方仓库,一个高性能、高可扩展、分布式的 SQL 数据库,支持 PostgreSQL 兼容性。适合对分布式数据库、SQL 数据库和云原生应用的开发者。 yugabyte-db 项目地址: https://gitcode.com/gh_mirrors/yu/yugabyte-db

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

娄筝逸

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

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

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

打赏作者

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

抵扣说明:

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

余额充值