単一コンピュータでTiDB運用環境クラスタのデプロイをシミュレーションする

単一コンピュータで運用環境クラスタをデプロイする

シナリオ: 完全なトポロジを持つ最小TiDBクラスタを体験し、単一Linuxサーバーで運用環境クラスタのデプロイ手順をシミュレーションする。 このセクションでは、TiUPで最小トポロジYAMLファイルを使ってTiDBクラスタをデプロイする方法について説明する。

クラスタデプロイの準備

次の要件を満たす対象コンピュータを準備する。

  • CentOS 7.3以上がインストールされている。
  • Linux OSがインターネットにアクセスできる。これはTiDBおよび関連ソフトウェアのインストールパッケージをダウンロードするために必要である。

最小TiDBクラスタトポロジは次のとおりである。

インスタンス カウント アドレス 構成
TiKV 3 10.0.1.1
10.0.1.1
10.0.1.1
ポートとディレクトリの競合を防止
TiDB 1 10.0.1.1 デフォルトポート
グローバルディレクトリ構成
PD 1 10.0.1.1 デフォルトポート
グローバルディレクトリ構成
TiFlash 1 10.0.1.1 デフォルトポート
グローバルディレクトリ構成
Monitor 1 10.0.1.1 デフォルトポート
グローバルディレクトリ構成

対象コンピュータのその他の要件:

  • rootユーザーとパスワードが必要。

  • 対象システムのファイアウォールサービスを停止するか、TiDBクラスタノードに必要なポートを開く。

  • 現在、TiUP Clusterはx86_64(AMD64)およびARMアーキテクチャでのTiDBデプロイをサポートする。

    • AMD64ではCentOS 7.3以上の使用を推奨する。
    • ARMではCentOS 7.6 1810の使用を推奨する。

クラスタデプロイの実行

  1. TiUPをダウンロードしてインストールする。

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

    source ${your_shell_profile}
    
  3. TiUPのクラスタコンポーネントをインストールする。

    tiup cluster
    
  4. TiUP Clusterがすでにコンピュータにインストールされている場合、ソフトウェアバージョンを更新する。

    tiup update --self && tiup update cluster
    
  5. rootユーザー権限を使用してsshdサービスの接続制限を増やす。これはTiUPが複数コンピュータでのデプロイをシミュレートする必要があるためである。

    1. /etc/ssh/sshd_configを変更し、MaxSessions20に設定する。
    2. sshdサービスを再起動する。
      service sshd restart
      
  6. クラスタを作成して開始する。

    次のテンプレートに従って構成ファイルを編集し、topo.yamlという名前を付ける。

    # # Global variables are applied to all deployments and used as the default value of
    # # the deployments if a specific deployment value is missing.
    global:
    user: "tidb"
    ssh_port: 22
    deploy_dir: "/tidb-deploy"
    data_dir: "/tidb-data"
    
    # # Monitored variables are applied to all the machines.
    monitored:
    node_exporter_port: 9100
    blackbox_exporter_port: 9115
    
    server_configs:
    tidb:
    log.slow-threshold: 300
    tikv:
    readpool.storage.use-unified-pool: false
    readpool.coprocessor.use-unified-pool: true
    pd:
    replication.enable-placement-rules: true
    replication.location-labels: ["host"]
    tiflash:
    logger.level: "info"
    
    pd_servers:
    - host: 10.0.1.1
    
    tidb_servers:
    - host: 10.0.1.1
    
    tikv_servers:
    - host: 10.0.1.1
    port: 20160
    status_port: 20180
    config:
        server.labels: { host: "logic-host-1" }
    
    - host: 10.0.1.1
    port: 20161
    status_port: 20181
    config:
        server.labels: { host: "logic-host-2" }
    
    - host: 10.0.1.1
    port: 20162
    status_port: 20182
    config:
        server.labels: { host: "logic-host-3" }
    
    tiflash_servers:
    - host: 10.0.1.1
    
    monitoring_servers:
    - host: 10.0.1.1
    
    grafana_servers:
    - host: 10.0.1.1
    
    • user: "tidb": tidbシステムユーザー(デプロイ時に自動作成される)を使用して、クラスタの内部管理を実行する。デフォルトではポート22を使用し、SSH経由で対象コンピュータにログインする。
    • replication.enable-placement-rules: このPDパラメータは、TiFlashが正しく動作するように設定されている。
    • host: 対象コンピュータのIP。
  7. クラスタデプロイコマンドを実行する。

    tiup cluster deploy <cluster-name> <tidb-version> ./topo.yaml --user root -p
    
    • <cluster-name>: クラスタ名を設定する。

    • <tidb-version>: TiDBクラスタバージョンを設定する。tiup list tidbコマンドを実行すると、サポートされるTiDBのすべてのバージョンを確認できる。

    • -p: 対象コンピュータへ接続するために使用するパスワードを指定する。

    「y」とrootユーザーのパスワードを入力し、デプロイを完了する。

    Do you want to continue? [y/N]:  y
    Input SSH password:
    
  8. クラスタを開始する。

    tiup cluster start <cluster-name>
    
  9. クラスタにアクセスする。

    • MySQLクライアントをインストールする。すでにインストールされている場合、この手順はスキップする。

      yum -y install mysql
      
    • TiDBにアクセスする。パスワードは空である。

      mysql -h 10.0.1.1 -P 4000 -u root
      
    • http://{grafana-ip}:3000 でGrafana監視ダッシュボードにアクセスする。デフォルトユーザー名とパスワードはいずれもadminである。

    • TiDBダッシュボード http://{pd-ip}:2379/dashboard にアクセスする。デフォルトユーザー名はrootで、パスワードは空である。

    • 現在デプロイされているクラスタ一覧を見るには:

      tiup cluster list
      
    • クラスタのトポロジと状態を見るには:

      tiup cluster display <cluster-name>
      

参照