YugabyteDB在GKE上的Helm Chart部署指南

YugabyteDB在GKE上的Helm Chart部署指南

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

前言

YugabyteDB是一个高性能的分布式SQL数据库,支持全球部署和线性扩展。本文将详细介绍如何在Google Kubernetes Engine(GKE)上使用Helm Chart部署单可用区的YugabyteDB集群。

环境准备

系统要求

在开始部署前,请确保满足以下要求:

  1. GKE集群:运行Kubernetes 1.20或更高版本
  2. 资源需求:默认配置需要至少12个CPU核心和45GB内存
  3. Helm版本:3.4或更高版本
  4. 节点配置:建议使用n1-standard-8或更高规格的节点类型

工具安装

  1. 安装Google Cloud SDK并配置默认项目与计算区域:

    gcloud config set project yugabyte
    gcloud config set compute/zone us-west1-b
    
  2. 安装kubectl工具,确保版本与GKE集群兼容

  3. 验证Helm安装:

    helm version
    

创建GKE集群

建议创建私有Kubernetes集群以获得更好的安全性:

gcloud container clusters create cluster_name --enable-private-nodes

注意:私有集群需要配置Cloud NAT以实现互联网访问,同时保持节点没有公共IP地址。

YugabyteDB集群部署

1. 添加Helm仓库

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

2. 验证Chart版本

helm search repo yugabytedb/yugabyte --version 2.20

3. 创建命名空间并安装

kubectl create namespace yb-demo
helm install yb-demo yugabytedb/yugabyte --version 2.20 --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

连接数据库

通过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
    

外部客户端连接

获取yb-tserver-service服务的EXTERNAL-IP:

  • 使用5433端口连接YSQL
  • 使用9042端口连接YCQL

集群配置选项

YugabyteDB Helm Chart支持多种配置选项:

独立负载均衡器

默认情况下,客户端API端点和YB-Master UI端点共享两个LoadBalancer。如需为每个服务使用独立的LoadBalancer:

helm install yb-demo yugabytedb/yugabyte -f expose-all.yaml --version 2.20 --namespace yb-demo --wait

内部负载均衡器

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

helm install yugabyte -f expose-all.yaml --version 2.20 --namespace yb-demo --name yb-demo \
  --set annotations.tserver.loadbalancer."cloud\.google\.com/load-balancer-type"=Internal --wait

最佳实践

  1. 资源规划:根据工作负载需求调整资源配置
  2. 监控设置:部署后配置适当的监控方案
  3. 备份策略:规划定期备份策略
  4. 性能调优:根据实际负载调整数据库参数

清理资源

删除集群时,除了使用Helm删除部署外,还需要手动删除持久卷声明:

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

通过以上步骤,您已成功在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、付费专栏及课程。

余额充值