在 ARM64 机器上部署 TiDB 集群

本文档介绍如何在 ARM64 机器上部署 TiDB 集群。

前置条件

部署 TiDB Operator

在 ARM64 机器上部署 TiDB Operator 的步骤与在 Kubernetes 上部署 TiDB Operator 的步骤相同。需要注意的是在 v1.3.1 及之前版本,在自定义部署 TiDB Operator 这一步,当获取到 tidb-operator chart 中的 value.yaml 文件后,你需要修改文件中的 operatorImagetidbBackupManagerImage 字段为 ARM64 版本镜像。例如:

  1. # ...
  2. operatorImage: pingcap/tidb-operator-arm64:v1.3.1
  3. # ...
  4. tidbBackupManagerImage: pingcap/tidb-backup-manager-arm64:v1.3.1
  5. # ...

部署 TiDB 集群

在 ARM64 机器上部署 TiDB 集群的步骤与在标准 Kubernetes 上部署 TiDB 集群 的步骤相同。唯一区别是,你需要将 TidbCluster 定义文件中相关组件的镜像设置为 ARM64 版本。例如:

  1. apiVersion: pingcap.com/v1alpha1
  2. kind: TidbCluster
  3. metadata:
  4. name: ${cluster_name}
  5. namespace: ${cluster_namespace}
  6. spec:
  7. version: "v5.4.0"
  8. # ...
  9. helper:
  10. image: busybox:1.33.0
  11. # ...
  12. pd:
  13. baseImage: pingcap/pd-arm64
  14. # ...
  15. tidb:
  16. baseImage: pingcap/tidb-arm64
  17. # ...
  18. tikv:
  19. baseImage: pingcap/tikv-arm64
  20. # ...
  21. pump:
  22. baseImage: pingcap/tidb-binlog-arm64
  23. # ...
  24. ticdc:
  25. baseImage: pingcap/ticdc-arm64
  26. # ...
  27. tiflash:
  28. baseImage: pingcap/tiflash-arm64
  29. # ...

初始化 TiDB 集群

在 ARM64 机器上初始化 TiDB 集群的步骤与在 Kubernetes 上的初始化 TiDB 集群的步骤 相同。唯一区别是,你需要将 TidbInitializer 定义文件中的 spec.image 字段设置为 ARM64 版本镜像。例如:

  1. apiVersion: pingcap.com/v1alpha1
  2. kind: TidbInitializer
  3. metadata:
  4. name: ${initializer_name}
  5. namespace: ${cluster_namespace}
  6. spec:
  7. image: kanshiori/mysqlclient-arm64
  8. # ...

部署 TiDB 集群监控

在 ARM64 机器上部署 TiDB 集群监控的步骤与 TiDB 集群的监控与告警 的步骤相同。需要注意的是使用低于 v5.4.0 版本的 TiDB,你需要将 TidbMonitor 定义文件中的 spec.initializer.baseImage 字段设置为 ARM64 版本镜像。

  1. apiVersion: pingcap.com/v1alpha1
  2. kind: TidbMonitor
  3. metadata:
  4. name: ${monitor_name}
  5. spec:
  6. # ...
  7. initializer:
  8. baseImage: pingcap/tidb-monitor-initializer-arm64
  9. # ...