Bitbucket Data Center にクラスタ ノードを追加する

追加のクラスタ ノードをプロビジョニングすることで、ダウンタイムなしで Bitbucket Data Center のキャパシティを迅速にスケーリングできます。このページでは、Bitbucket Data Center の既存のインスタンスに別のクラスタ ノードを追加する方法について説明します。

Bitbucket Server の単一インスタンスから Bitbucket Data Center に移動する場合、このページではなく「Bitbucket Data Center のインストール」に移動してください。

Bitbucket Data Center に慣れていない場合、「Bitbucket Data Center を使用したクラスタリング」を確認することをおすすめします。

このページの内容

クラスタ ノードをプロビジョニングする前の考慮事項

Chef、Puppet、または Vagrant などの自動構成管理ツールを使用するか、同一の仮想マシンのスナップショットをスピンアップすることで、クラスター ノードのプロビジョニングを行うことを強くお勧めします。

クラスタ ノードの最小要件

各 Bitbucket クラスタ ノードが Bitbucket Data Center Web アプリケーションを実行するため、それぞれが次の最小要件を満たす必要があります。

  • 各 Bitbucket クラスタ ノードは専用のマシンである必要がありますが、マシンは物理でも仮想でも構いません。 
  • クラスタ ノードは高速 LAN で接続されている必要があります (すなわち、物理的に同じデータ センター内に存在する必要があります)。 
  • Java や Git の要件を含む、Bitbucket Server のサポート対象プラットフォームの要件が各クラスタ ノードに適用されます。
  • 一貫したパフォーマンスのため、各クラスタ ノードはほぼ同一か、可能な限り同様である必要があります。
  • すべてのクラスタ ノードが同じバージョンの Bitbucket Data Center を実行する必要があります。
  • すべてのクラスタ ノードが同期クロックを使用し (NTP を使用するなど)、同じタイムゾーンで構成されている必要があります。

アーキテクチャの概要

これは、Bitbucket Data Center のコンポーネント図です。

1. 共有ホーム ディレクトリをノードにマウントする

Bitbucket Data Center は、専用のマシン上に存在し、NFS を使用してアクセスできる共有ファイル システムを使用します。詳細については、「Bitbucket Data Center のインストール」を参照してください。

Mount the shared home directory as ${BITBUCKET_HOME}/shared. For example, suppose your Bitbucket home directory is /var/atlassian/application-data/bitbucket, and your shared home directory is available as an NFS export called bitbucket-san:/bitbucket-shared. Add the following line to /etc/fstab on the cluster node:

/etc/fstab
bitbucket-san:/bitbucket-shared /var/atlassian/application-data/bitbucket/shared nfs nfsvers=3,lookupcache=pos,noatime,intr,rsize=32768,wsize=32768 0 0

これをマウントします。

mkdir -p /var/atlassian/application-data/bitbucket/shared
sudo mount -a

2. ノードに Bitbucket Data Center をインストールする

https://www.atlassian.com/software/bitbucket/download から最新の Bitbucket Data Center ディストリビューションをダウンロードし、インストーラーを使用するか、アーカイブ ファイルから手動でアプリケーションをインストールして、クラスタ ノードに Bitbucket Server をインストールします。

3. ノードをクラスタに追加する

Start Bitbucket Server on the new node. See Starting and stopping Bitbucket Server. You can optionally give the node a persistent, human readable name by setting a node.name system property under JVM_SUPPORT_RECOMMENDED_ARGS in _start-webapp.sh For example:

-Dcluster.node.name=bitbucket-1

Once Bitbucket Server starts, go to http://<load-balancer>/admin/clustering. You should see the new node listed, which would look similar to this:

Verify that the new node you have started up has successfully joined the cluster. If it does not, check your network configuration and the ${BITBUCKET_HOME}/log/atlassian-bitbucket.log files on all nodes. If you are unable to find a reason for the node failing to join successfully, contact Atlassian Support .

4. ノードをロード バランサに接続する

Bitbucket Data Center はロード バランサを使用して、クラスタ ノードに対するユーザーからのリクエストを分散します。あるクラスタ ノードがダウンした場合、ロード バランサはすぐに障害を検出し、数秒以内に他のノードにリクエストを自動的に転送します。詳細については、「Bitbucket Data Center のインストール」を参照してください。

HAProxy 以外のハードウェアまたはソフトウェア ロード バランサを使用している場合、新しい Bitbucket クラスタ ノードをロード バランサに追加する方法についてはベンダーのドキュメントを参照してください。

If you are using HAProxy, simply add the following lines to your haproxy.cfg file:

# In the backend bitbucket_http_backend section, add:
server bitbucket<xx> 192.168.0.<x>:7990 check inter 10000 rise 2 fall 5

 

# In the backend bitbucket_ssh_backend section, add:
server bitbucket<xx> 192.168.0.<x>:7999 check port 7999

where the values for <x> and <xx> don't conflict with an existing node.

ここで、HAProxy を再起動します  

sudo service haproxy restart

 

新しいノードがクラスタ内にあり、リクエストを受信していることを検証します。これを行うには、各ノードのログを調べ、それらすべてがトラフィックを受信していることを確認します。さらに、一方のノードで実行した更新をもう一方のノードで確認できるかどうかも調べます。 

You can monitor the health of your cluster by navigating to HAProxy's statistics page at http://<load-balancer>:8090/. You should see a page similar to this:


 

問題がある場合は、サポート チケットを起票し、「Bitbucket Data Center にクラスタ ノードを追加する」の手順にしたがっていることを記載してください

最終更新日 2019 年 8 月 20 日

この内容はお役に立ちましたか?

はい
いいえ
この記事についてのフィードバックを送信する
Powered by Confluence and Scroll Viewport.