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

このガイドでは、 TiUP使用して TiDB セルフマネージド クラスターを本番環境にデプロイする方法について説明します。

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

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

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

以下の文書を必ず読んでください。

さらに、 TiDBSecurityコンフィグレーションのベスト プラクティスを学習することをお勧めします。

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

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

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

通常のユーザー アカウント ( 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

    Updated successfully!が表示されている場合、 TiUPクラスターは正常に更新されています。

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

    tiup --binary cluster

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

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

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

方法 1 : 次のリンクを使用して、対象の TiDB バージョンのオフライン バイナリ パッケージ (TiUPオフライン パッケージを含む) をダウンロードします。サーバーとツールキット パッケージの両方をダウンロードする必要があります。ダウンロードすると、 プライバシーポリシーに同意したことになります。

https://download.pingcap.org/tidb-community-server-{version}-linux-{arch}.tar.gz
https://download.pingcap.org/tidb-community-toolkit-{version}-linux-{arch}.tar.gz

ヒント:

リンク内の{version} TiDB のバージョン番号を示し、 {arch}システムのアーキテクチャamd64またはarm64を示します。たとえば、 amd64アーキテクチャのv8.5.0のダウンロード リンクはhttps://download.pingcap.org/tidb-community-toolkit-v8.5.0-linux-amd64.tar.gzです。

方法 2 : 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.12.3 とTiUP クラスタ v1.12.3 のオフライン ミラーのみを含むオフライン ミラーをプルできます。

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

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

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

    3. 隔離された環境内のコントロール マシン上の現在のTiUPミラーのパスを確認します。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.12.3
    5. 上記の手順が完了したら、 tiup listコマンドを実行して結果を確認します。このドキュメントの例では、 tiup list tiuptiup list cluster両方の出力から、 v1.12.3の対応するコンポーネントが使用可能であることが示されています。

オフライン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 cloneコマンドを使用してオフラインコンポーネントパッケージを手動でパッケージ化する場合は、この手順をスキップできます。

次のコマンドを実行して、オフライン ツールキット パッケージをサーバーパッケージ ディレクトリにマージします。

tar xf tidb-community-toolkit-${version}-linux-amd64.tar.gz ls -ld tidb-community-server-${version}-linux-amd64 tidb-community-toolkit-${version}-linux-amd64 cd tidb-community-server-${version}-linux-amd64/ cp -rp keys ~/.tiup/ tiup mirror merge ../tidb-community-toolkit-${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 ) を変更する必要があります。その他のシナリオについては、それに応じて構成テンプレートを編集します。

応用コンフィグレーションタスクコンフィグレーションファイルテンプレートトポロジの説明
OLTP最小限のトポロジをデプロイシンプルで最小限の構成テンプレート
完全な最小限の構成テンプレート
これは、tidb-server、tikv-server、pd-server を含む基本的なクラスター トポロジです。
HTAPTiFlashトポロジをデプロイシンプルなTiFlash構成テンプレート
完全なTiFlash構成テンプレート
これは、最小限のクラスター トポロジとともにTiFlash を展開することです。TiFlashは列指向のstorageエンジンであり、徐々に標準的なクラスター トポロジになります。
ティCDC使用して増分データを複製するTiCDCトポロジをデプロイシンプルな TiCDC 構成テンプレート
完全な TiCDC 構成テンプレート
これは、最小限のクラスター トポロジとともに TiCDC をデプロイすることです。TiCDC は、TiDB、MySQL、Kafka、MQ、storageサービスなど、複数のダウンストリーム プラットフォームをサポートします。
SparkでOLAPを使用するTiSparkトポロジーをデプロイシンプルなTiSpark構成テンプレート
完全な TiSpark 構成テンプレート
これは、最小限のクラスター トポロジとともに TiSpark を展開するためのものです。TiSpark は、OLAP クエリに応答するために TiDB/TiKV 上で Apache Spark を実行するために構築されたコンポーネントです。現在、 TiUPクラスターの TiSpark のサポートはまだ実験的です。
1台のマシンに複数のインスタンスをデプロイハイブリッドトポロジをデプロイハイブリッド展開のためのシンプルな構成テンプレート
ハイブリッド展開のための完全な構成テンプレート
デプロイメント トポロジは、ディレクトリ、ポート、リソース比率、ラベルの追加構成を追加する必要がある場合にも適用されます。
データセンター全体にTiDBクラスタをデプロイ地理的に分散した展開トポロジをデプロイ地理的に分散した展開用のコンフィグレーションテンプレートこのトポロジでは、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 v8.5.0 ./topology.yaml --user root [-p] [-i /home/root/.ssh/gcp_rsa]

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

  • tidb-test 、デプロイする TiDB クラスターの名前です。
  • v8.5.0 、デプロイする TiDB クラスターのバージョンです。 tiup list tidbを実行すると、サポートされている最新バージョンを確認できます。
  • topology.yaml初期化構成ファイルです。
  • --user root 、クラスターの展開を完了するために、 rootのユーザーとしてターゲット マシンにログインすることを示します。4 rootユーザーには、ターゲット マシンに対するsshおよびsudo権限が必要です。または、 sshおよびsudo権限を持つ他のユーザーを使用して展開を完了することもできます。
  • [-i][-p]はオプションです。パスワードなしでターゲット マシンにログインするように設定した場合、これらのパラメータは必要ありません。そうでない場合は、2 つのパラメータのいずれかを選択します。4 は、ターゲット マシンにアクセスできるルート ユーザー (または--userで指定された他のユーザー) の秘密鍵です[-i] [-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クラスタ v1.9.0 以降では、新しい起動方法としてセーフ スタートが導入されました。この方法でデータベースを起動すると、データベースのセキュリティが向上します。この方法を使用することをお勧めします。

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

注記:

  • 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 クラスターとともにTiFlashをデプロイした場合は、次のドキュメントを参照してください。

TiDB クラスターとともにティCDCデプロイした場合は、データをストリーミングするには次のドキュメントを参照してください。

オンライン サービスを中断せずに TiDB クラスターをスケールアウトまたはスケールインする場合は、 TiUP を使用して TiDBクラスタをスケールする参照してください。

このページは役に立ちましたか?