重要
このページは英語版のページを機械翻訳しています。原文はこちらからご覧ください。

TiUPを使用してTiDBクラスターをデプロイする

TiUPは、TiDB4.0で導入されたクラスタの運用および保守ツールです。 TiUPは、Golangで記述されたクラスタ管理コンポーネントであるTiUPクラスタを提供します。 TiUPクラスタを使用することにより、TiDBクラスターのデプロイ、開始、停止、破棄、スケーリング、アップグレードなどの日常のデータベース操作を簡単に実行し、TiDBクラスタパラメーターを管理できクラスタ。

TiUPは、TiDB、TiFlash、TiDB Binlog、TiCDC、および監視システムの展開をサポートします。このドキュメントでは、さまざまなトポロジのTiDBクラスターを展開する方法を紹介します。

ノート:

TiDB、TiUP、およびTiDBダッシュボードは、使用法の詳細をPingCAPと共有して、製品を改善する方法を理解するのに役立ちます。共有される内容と共有を無効にする方法の詳細については、 テレメトリーを参照してください。

ステップ1:前提条件と事前チェック

次のドキュメントを読んだことを確認してください。

ステップ2:制御マシンにTiUPをインストールします

TiUPは、オンライン展開とオフライン展開の2つの方法のいずれかで制御マシンにインストールできます。

方法1:TiUPをオンラインでデプロイ

通常のユーザーアカウントを使用してコントロールマシンにログインします(例としてtidb人のユーザーを取り上げます)。以下のすべてのTiUPインストールおよびクラスタ管理操作は、 tidbのユーザーが実行できます。

  1. 次のコマンドを実行して、TiUPをインストールします。

    curl --proto '=https' --tlsv1.2 -sSf https://tiup-mirrors.pingcap.com/install.sh | sh
    
  2. TiUP環境変数を設定します。

    グローバル環境変数を再宣言します。

    source .bash_profile
    

    TiUPがインストールされているかどうかを確認します。

    which tiup
    
  3. TiUPクラスタコンポーネントをインストールします。

    tiup cluster
    
  4. TiUPがすでにインストールされている場合は、TiUPクラスタコンポーネントを最新バージョンに更新します。

    tiup update --self && tiup update cluster
    

    期待される出力には“Update successfully!”が含まれます。

  5. TiUPクラスタの現在のバージョンを確認します。

    tiup --binary cluster
    

方法2:TiUPをオフラインでデプロイ

このセクションで次の手順を実行して、TiUPを使用してTiDBクラスタをオフラインでデプロイします。

ステップ1:TiUPオフラインコンポーネントパッケージを準備する

TiUPオフラインコンポーネントパッケージを準備するには、 tiup mirror cloneを使用してオフラインコンポーネントパッケージを手動でパックします。

  1. TiUPパッケージマネージャーをオンラインでインストールします。

    1. TiUPツールをインストールします。

      curl --proto '=https' --tlsv1.2 -sSf https://tiup-mirrors.pingcap.com/install.sh | sh
      
    2. グローバル環境変数を再宣言します。

      source .bash_profile
      
    3. TiUPがインストールされているかどうかを確認します。

      which tiup
      
  2. TiUPを使用してミラーを引きます。

    1. インターネットにアクセスできるマシンで必要なコンポーネントをプルします。

      tiup mirror clone tidb-community-server-${version}-linux-amd64 ${version} --os=linux --arch=amd64
      

      上記のコマンドは、現在のディレクトリにtidb-community-server-${version}-linux-amd64という名前のディレクトリを作成します。このディレクトリには、クラスタの起動に必要なコンポーネントパッケージが含まれています。

    2. tarコマンドを使用してコンポーネントパッケージをパックし、分離された環境の制御マシンにパッケージを送信します。

      tar czvf tidb-community-server-${version}-linux-amd64.tar.gz tidb-community-server-${version}-linux-amd64
      

      tidb-community-server-${version}-linux-amd64.tar.gzは独立したオフライン環境パッケージです。

  3. オフラインミラーをカスタマイズするか、既存のオフラインミラーの内容を調整します。

    既存のオフラインミラーを調整する場合(コンポーネントの新しいバージョンの追加など)、次の手順を実行します。

    1. オフラインミラーをプルする場合、コンポーネントやバージョン情報などのパラメーターを介して特定の情報を指定することにより、不完全なオフラインミラーを取得できます。たとえば、次のコマンドを実行することにより、TiUPv1.9.0およびTiUPClusterv1.9.0のオフラインミラーのみを含むオフラインミラーをプルできます。

      tiup mirror clone tiup-custom-mirror-v1.9.0 --tiup v1.9.0 --cluster v1.9.0
      

      特定のプラットフォームのコンポーネントのみが必要な場合は、 --osつまたは--archのパラメーターを使用してそれらを指定できます。

    2. 「TiUPを使用してミラーをプルする」のステップ2を参照し、この不完全なオフラインミラーを隔離された環境の制御マシンに送信します。

    3. 隔離された環境の制御マシンで現在のオフラインミラーのパスを確認します。 TiUPツールが最新バージョンの場合は、次のコマンドを実行して現在のミラーアドレスを取得できます。

      tiup mirror show
      

      上記のコマンドの出力がshowコマンドが存在しないことを示している場合は、古いバージョンのTiUPを使用している可能性があります。この場合、 $HOME/.tiup/tiup.tomlから現在のミラーアドレスを取得できます。このミラーアドレスを記録します。次の手順では、 ${base_mirror}を使用してこのアドレスを参照します。

    4. 不完全なオフラインミラーを既存のオフラインミラーにマージします。

      まず、現在のオフラインミラーのkeysディレクトリを$HOME/.tiupディレクトリにコピーします。

      cp -r ${base_mirror}/keys $HOME/.tiup/
      

      次に、TiUPコマンドを使用して、不完全なオフラインミラーを使用中のミラーにマージします。

      tiup mirror merge tiup-custom-mirror-v1.9.0
      
    5. 上記の手順が完了したら、 tiup listコマンドを実行して結果を確認します。このドキュメントの例では、 tiup list tiuptiup list clusterの両方の出力は、 v1.9.0の対応するコンポーネントが使用可能であることを示しています。

ステップ2:オフラインTiUPコンポーネントをデプロイ

パッケージをターゲットクラスタの制御マシンに送信した後、次のコマンドを実行してTiUPコンポーネントをインストールします。

tar xzvf tidb-community-server-${version}-linux-amd64.tar.gz && \
sh tidb-community-server-${version}-linux-amd64/local_install.sh && \
source /home/tidb/.bash_profile

local_install.shスクリプトは、 tiup mirror set tidb-community-server-${version}-linux-amd64コマンドを自動的に実行して、現在のミラーアドレスをtidb-community-server-${version}-linux-amd64に設定します。

ミラーを別のディレクトリに切り替えるには、 tiup mirror set <mirror-dir>コマンドを手動で実行できます。ミラーをオンライン環境に切り替えるには、 tiup mirror set https://tiup-mirrors.pingcap.comコマンドを実行します。

ステップ3:クラスタトポロジファイルを初期化する

目的のクラスタトポロジに従って、クラスタ初期化構成ファイルを手動で作成および編集する必要があります。

クラスタ初期化構成ファイルを作成するには、TiUPを使用してコントロールマシンにYAML形式の構成ファイルを作成できます。

tiup cluster template > topology.yaml

ノート:

ハイブリッド展開シナリオの場合、 tiup cluster template --full > topology.yamlを実行して、推奨されるトポロジテンプレートを作成することもできます。地理的に分散された展開シナリオの場合、 tiup cluster template --multi-dc > topology.yamlを実行して、推奨されるトポロジテンプレートを作成できます。

vi topology.yamlを実行して、構成ファイルの内容を確認します。

global:
  user: "tidb"
  ssh_port: 22
  deploy_dir: "/tidb-deploy"
  data_dir: "/tidb-data"
server_configs: {}
pd_servers:
  - host: 10.0.1.4
  - host: 10.0.1.5
  - host: 10.0.1.6
tidb_servers:
  - host: 10.0.1.7
  - host: 10.0.1.8
  - host: 10.0.1.9
tikv_servers:
  - host: 10.0.1.1
  - host: 10.0.1.2
  - host: 10.0.1.3
monitoring_servers:
  - host: 10.0.1.4
grafana_servers:
  - host: 10.0.1.4
alertmanager_servers:
  - host: 10.0.1.4

次の例では、6つの一般的なシナリオについて説明します。対応するリンクのトポロジの説明とテンプレートに従って、構成ファイル( topology.yamlという名前)を変更する必要があります。他のシナリオでは、それに応じて構成テンプレートを編集します。

  • 最小限の展開トポロジ

    これは、tidb-server、tikv-server、およびpd-serverを含む基本的なクラスタトポロジです。 OLTPアプリケーションに適しています。

  • TiFlash展開トポロジ

    これは、最小限のクラスタトポロジとともにTiFlashを展開するためです。 TiFlashは列指向ストレージエンジンであり、徐々に標準のクラスタトポロジになります。リアルタイムHTAPアプリケーションに適しています。

  • TiCDC展開トポロジ

    これは、最小限のクラスタトポロジとともにTiCDCを展開するためです。 TiCDCは、TiDB4.0で導入されたTiDBのインクリメンタルデータを複製するためのツールです。 TiDB、MySQL、MQなどの複数のダウンストリームプラットフォームをサポートします。 TiDB Binlogと比較して、TiCDCはレイテンシーが低く、ネイティブの高可用性を備えています。展開後、TiCDCとcdc cliを使用してレプリケーションタスクを作成しますを起動します。

  • TiDBBinlogデプロイメントトポロジ

    これは、最小限のクラスタトポロジとともにTiDBBinlogを展開するためです。 TiDB Binlogは、インクリメンタルデータを複製するために広く使用されているコンポーネントです。ほぼリアルタイムのバックアップとレプリケーションを提供します。

  • TiSparkデプロイメントトポロジ

    これは、最小限のクラスタトポロジとともにTiSparkを展開するためです。 TiSparkは、TiDB /TiKV上でApacheSparkを実行して、OLAPクエリに応答するために構築されたコンポーネントです。現在、TiSparkに対するTiUPクラスターのサポートはまだ実験的段階です。

  • ハイブリッド展開トポロジ

    これは、1台のマシンに複数のインスタンスをデプロイするためのものです。ディレクトリ、ポート、リソース比率、およびラベルの構成を追加する必要があります。

  • 地理分散型デプロイメントトポロジ

    このトポロジでは、2つの都市にある3つのデータセンターの一般的なアーキテクチャを例として取り上げます。地理的に分散された展開アーキテクチャと、注意が必要な主要な構成を紹介します。

ノート:

  • グローバルに有効である必要があるパラメーターについては、構成ファイルのserver_configsセクションで対応するコンポーネントのこれらのパラメーターを構成します。
  • 特定のノードで有効になるはずのパラメーターについては、このノードのconfigでこれらのパラメーターを構成します。
  • .を使用して、構成のサブカテゴリ( log.slow-thresholdなど)を示します。その他の形式については、 TiUP構成テンプレートを参照してください。
  • パラメータの詳細については、 TiDB config.toml.example 、およびTiKV config.toml.exampleTiFlash構成してPD config.toml.example

手順4:展開コマンドを実行する

ノート:

TiUPを使用してTiDBを展開する場合、セキュリティ認証に秘密鍵または対話型パスワードを使用できます。

  • 秘密鍵を使用する場合は、 -iまたは--identity_fileを介して鍵のパスを指定できます。
  • パスワードを使用する場合は、 -pフラグを追加して、パスワード操作ウィンドウに入ります。
  • ターゲットマシンへのパスワードなしのログインが設定されている場合、認証は必要ありません。

一般に、TiUPは、次の例外を除いて、ターゲットマシン上のtopology.yamlファイルで指定されたユーザーとグループを作成します。

  • topology.yamlで構成されたユーザー名は、ターゲットマシンにすでに存在します。
  • コマンドラインで--skip-create-userオプションを使用して、ユーザーを作成する手順を明示的にスキップしました。

deployコマンドを実行する前に、 checkおよびcheck --applyコマンドを使用して、クラスタの潜在的なリスクを検出し、自動的に修復します。

tiup cluster check ./topology.yaml --user root [-p] [-i /home/root/.ssh/gcp_rsa]
tiup cluster check ./topology.yaml --apply --user root [-p] [-i /home/root/.ssh/gcp_rsa]

次に、 deployコマンドを実行してTiDBクラスタをデプロイします。

tiup cluster deploy tidb-test v5.4.1 ./topology.yaml --user root [-p] [-i /home/root/.ssh/gcp_rsa]

上記のコマンドでは:

  • デプロイされたTiDBクラスタの名前はtidb-testです。
  • tiup list tidbを実行すると、サポートされている最新バージョンを確認できます。このドキュメントでは、例としてv5.4.1を取り上げます。
  • 初期化設定ファイルはtopology.yamlです。
  • --user rootrootキーを使用してターゲットマシンにログインしてクラスタの展開を完了するか、 sshおよびsudoの特権を持つ他のユーザーを使用して展開を完了することができます。
  • [-i]および[-p] :オプション。パスワードなしでターゲットマシンへのログインを設定した場合、これらのパラメータは必要ありません。そうでない場合は、2つのパラメーターのいずれかを選択してください。 [-i]は、ターゲットマシンにアクセスできるrootのユーザー(または--userで指定された他のユーザー)の秘密鍵です。 [-p]は、ユーザーパスワードをインタラクティブに入力するために使用されます。
  • ターゲットマシンで作成するユーザーグループ名を指定する必要がある場合は、 この例を参照してください。

出力ログの最後に、 Deployed cluster `tidb-test` successfullyが表示されます。これは、展開が成功したことを示します。

ステップ5:TiUPによって管理されているクラスターを確認します

tiup cluster list

TiUPは、複数のTiDBクラスターの管理をサポートしています。上記のコマンドは、名前、展開ユーザー、バージョン、秘密鍵情報など、現在TiUPによって管理されているすべてのクラスターの情報を出力します。

Starting /home/tidb/.tiup/components/cluster/v1.5.0/cluster list
Name              User  Version        Path                                                        PrivateKey
----              ----  -------        ----                                                        ----------
tidb-test         tidb  v5.3.0      /home/tidb/.tiup/storage/cluster/clusters/tidb-test         /home/tidb/.tiup/storage/cluster/clusters/tidb-test/ssh/id_rsa

手順6:デプロイされたTiDBクラスタのステータスを確認する

たとえば、次のコマンドを実行して、 tidb-testのクラスタのステータスを確認します。

tiup cluster display tidb-test

期待される出力には、インスタンスID、役割、ホスト、リスニングポート、ステータス(クラスタがまだ開始されていないため、ステータスはDown )、およびディレクトリ情報が含まれinactive

ステップ7:TiDBクラスタを開始する

TiUPクラスタv1.9.0以降、新しい開始方法としてセーフスタートが導入されました。この方法を使用してデータベースを開始すると、データベースのセキュリティが向上します。この方法を使用することをお勧めします。

安全に起動すると、TiUPはTiDB rootユーザーのパスワードを自動的に生成し、コマンドラインインターフェイスでパスワードを返します。

ノート:

  • TiDBクラスタを安全に起動した後は、パスワードなしでrootユーザーを使用してTiDBにログインすることはできません。したがって、今後のログインのために、コマンド出力で返されたパスワードを記録する必要があります。

  • パスワードは1回だけ生成されます。記録しない場合や忘れた場合は、 rootパスワードを忘れるを参照してパスワードを変更してください。

方法1:安全なスタート

tiup cluster start tidb-test --init

出力が次の場合、開始は成功しています。

Started cluster `tidb-test` successfully.
The root password of TiDB database has been changed.
The new password is: 'y_+3Hwp=*AWz8971s6'.
Copy and record it to somewhere safe, it is only displayed once, and will not be stored.
The generated password can NOT be got again in future.

方法2:標準開始

tiup cluster start tidb-test

出力ログにStarted cluster `tidb-test` successfullyが含まれている場合、開始は成功しています。標準の起動後、パスワードなしでrootユーザーを使用してデータベースにログインできます。

手順8:TiDBクラスタの実行ステータスを確認する

具体的な操作については、 クラスタステータスの確認を参照してください。

次は何ですか

TiDBクラスタと一緒にTiFlashをデプロイした場合は、次のドキュメントを参照してください。

TiDBクラスタと一緒にTiCDCをデプロイした場合は、次のドキュメントを参照してください。