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

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

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

ノート:

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

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

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

ステップ 2. 制御マシンに TiUP をデプロイ

コントロール マシンに TiUP を展開するには、オンライン展開とオフライン展開の 2 つの方法があります。

デプロイをオンラインで展開する

通常のユーザー アカウントを使用して制御マシンにログインします (例としてtidbユーザーを取り上げます)。以降の TiUP のインストールとクラスター管理はtidbユーザーで実行できます。

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

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

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

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

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

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

    tiup update --self && tiup update cluster

    “Update successfully!”が表示されれば、TiUP クラスターは正常に更新されています。

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

    tiup --binary cluster

TiUP をオフラインでデプロイ

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

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. オフライン ミラーをプルする場合、コンポーネントやバージョン情報などのパラメータを介して特定の情報を指定することで、不完全なオフライン ミラーを取得できます。たとえば、次のコマンドを実行して、TiUP v1.11.0 と TiUP クラスタ v1.11.0 のオフライン ミラーのみを含むオフライン ミラーをプルできます。

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

オフライン 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 cluster template > topology.yaml

次の 2 つの一般的なシナリオでは、コマンドを実行して、推奨されるトポロジ テンプレートを生成できます。

  • ハイブリッド デプロイの場合: 複数のインスタンスが 1 台のマシンにデプロイされます。詳細については、 ハイブリッド展開トポロジを参照してください。

    tiup cluster template --full > topology.yaml
  • 地理的に分散した配置の場合: TiDB クラスターは、地理的に分散したデータ センターに配置されます。詳細については、 地理的に分散された展開トポロジを参照してください。

    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

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

応用Configuration / コンフィグレーションタスクConfiguration / コンフィグレーションファイルのテンプレートトポロジの説明
OLTP最小限のトポロジをデプロイシンプルな最小限の構成テンプレート
完全な最小構成テンプレート
これは、tidb-server、tikv-server、および pd-server を含む基本的なクラスター トポロジです。
HTAPTiFlash トポロジをデプロイシンプルな TiFlash 構成テンプレート
完全な TiFlash 構成テンプレート
これは、最小限のクラスター トポロジと共に TiFlash をデプロイするためのものです。 TiFlash は柱状のストレージ エンジンであり、徐々に標準のクラスター トポロジーになります。
TiCDCを使用して増分データをレプリケートするTiCDC トポロジをデプロイシンプルな TiCDC 構成テンプレート
完全な TiCDC 構成テンプレート
これは、最小限のクラスター トポロジと共に TiCDC をデプロイすることです。 TiCDC は、TiDB、MySQL、MQ など、複数のダウンストリーム プラットフォームをサポートしています。
Binlogを使用して増分データをレプリケートするTiDB Binlogトポロジをデプロイシンプルな TiDB Binlog構成テンプレート (MySQL をダウンストリームとして)
シンプルな TiDB Binlog構成テンプレート (ダウンストリームとしてのファイル)
完全な TiDB Binlog構成テンプレート
これは、最小限のクラスター トポロジと共に TiDB Binlogをデプロイするためのものです。
Spark で OLAP を使用するTiSpark トポロジをデプロイシンプルな TiSpark 構成テンプレート
完全な TiSpark 構成テンプレート
これは、最小限のクラスター トポロジと共に TiSpark をデプロイするためのものです。 TiSpark は、TiDB/TiKV 上で Apache Spark を実行して OLAP クエリに応答するために構築されたコンポーネントです。現在、TiSpark に対する TiUP クラスターのサポートはまだ実験的段階です。
複数のインスタンスを 1 台のマシンにデプロイハイブリッド トポロジをデプロイするハイブリッド展開用のシンプルな構成テンプレート
ハイブリッド展開用の完全な構成テンプレート
デプロイ トポロジは、ディレクトリ、ポート、リソース比率、およびラベルの構成を追加する必要がある場合にも適用されます。
データセンター全体に TiDB クラスターをデプロイ地理的に分散した展開トポロジをデプロイする地理的に分散した配置のConfiguration / コンフィグレーションテンプレートこのトポロジは、例として 2 つの都市にある 3 つのデータ センターの典型的なアーキテクチャを取り上げています。地理的に分散したデプロイアーキテクチャと、注意が必要な主要な構成について説明します。

ノート:

  • グローバルに有効なパラメーターについては、構成ファイルのserver_configsセクションで、対応するコンポーネントのこれらのパラメーターを構成します。
  • 特定のノードで有効にする必要があるパラメーターについては、このノードのconfigでこれらのパラメーターを構成します。
  • .を使用して、構成のサブカテゴリ ( log.slow-thresholdなど) を示します。その他の形式については、 TiUP 構成テンプレートを参照してください。
  • ターゲット マシンに作成するユーザー グループ名を指定する必要がある場合は、 この例を参照してください。

構成の詳細については、次の構成例を参照してください。

ステップ 4. デプロイ コマンドを実行する

ノート:

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

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

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

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

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

  1. 潜在的なリスクを確認します。

    tiup cluster check ./topology.yaml --user root [-p] [-i /home/root/.ssh/gcp_rsa]
  2. 自動修復を有効にします。

    tiup cluster check ./topology.yaml --apply --user root [-p] [-i /home/root/.ssh/gcp_rsa]
  3. TiDB クラスターをデプロイします。

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

上記のtiup cluster deployコマンドで:

  • tidb-testは、デプロイする TiDB クラスターの名前です。
  • v6.3.0は、デプロイする TiDB クラスターのバージョンです。 tiup list tidbを実行すると、サポートされている最新のバージョンを確認できます。
  • topology.yamlは初期設定ファイルです。
  • --user rootは、ターゲット マシンにrootユーザーとしてログインして、クラスターの展開を完了することを示します。 root人のユーザーは、ターゲット マシンに対してsshsudoの権限を持つことが期待されます。または、 sshおよびsudoの権限を持つ他のユーザーを使用して展開を完了することもできます。
  • [-i][-p]はオプションです。パスワードなしでターゲット マシンへのログインを構成した場合、これらのパラメータは必要ありません。そうでない場合は、2 つのパラメーターのいずれかを選択します。 [-i]は、ターゲット マシンにアクセスできる root ユーザー (または--userで指定された他のユーザー) の秘密鍵です。 [-p]は、対話的にユーザーパスワードを入力するために使用されます。

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

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

tiup cluster list

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

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

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

tiup cluster display tidb-test

予想される出力には、インスタンス ID、ロール、ホスト、リスニング ポート、ステータス (クラスターがまだ開始されていないため、ステータスはDown / inactiveです)、およびディレクトリ情報が含まれます。

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

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

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

ノート:

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

  • パスワードは一度だけ生成されます。記録していない場合や忘れてしまった場合は、 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 クラスターの実行ステータスを確認する

tiup cluster display tidb-test

出力ログにUpステータスが表示されている場合、クラスターは正常に動作しています。

こちらもご覧ください

ティフラッシュを TiDB クラスターと共にデプロイした場合は、次のドキュメントを参照してください。

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