ノードに複数のネットワーク インターフェイスがあり、マルチキャスト検出が使用されている場合に、Bitbucket ノードがクラスタを形成しない

お困りですか?

アトラシアン コミュニティをご利用ください。

コミュニティに質問


プラットフォームについて: Server および Data Center のみ。この記事は、Server および Data Center プラットフォームのアトラシアン製品にのみ適用されます。

Support for Server* products ended on February 15th 2024. If you are running a Server product, you can visit the Atlassian Server end of support announcement to review your migration options.

*Fisheye および Crucible は除く

要約

1 つ以上のノードに複数のネットワーク インターフェイスおよび IP アドレスがあり、ノード検出にマルチキャストが使用されている場合、Bitbucket Data Center ノードはクラスタを形成できないことがあります。

Bitbucket はデフォルトですべてのネットワーク インターフェースでリッスンします。使用する特定のネットワークインターフェースを選択することはなく、基盤となるオペレーティング システムに依存してインターフェースを割り当てます。

ノードに複数の IP アドレスがある場合、"間違った" IP アドレスが選択され、ノードが互いを検出できなくなる可能性があります。 

環境

以下を含む Bitbucket Data Center インスタンス

  • 複数のノード
  • 1つ以上のノードが複数のネットワーク インターフェイスおよび IP アドレスを持つ
  • ノード検出メカニズムとしてマルチキャストを使用している。
    つまり、<BITBUCKET_HOME>/shared/bitbucket.properties  ファイルに次のプロパティが設定されている。

    # Use multicast to discover cluster nodes
    hazelcast.network.multicast=true

診断

Bitbucket のデバッグログを有効にします

Data Center クラスターが形成される際、 $BITBUCKET_HOME/log/atlassian-bitbucket.log には新しいノードが認証されてクラスターに追加されたことを示すログが記録されます。

サンプル ログ

以下は、既存ノードのログのサンプルです。

2023-04-21 08:30:25,654 DEBUG [hz.hazelcast.cached.thread-3]  c.a.s.i.c.DefaultClusterJoinManager ACCEPT(10.255.9.1:5701 <- 10.255.9.3:38113): Authenticating cluster node
2023-04-21 08:30:25,865 DEBUG [hz.hazelcast.cached.thread-3]  c.a.s.i.c.SharedSecretClusterAuthenticator Created: Response{proof=C1BC540D6526815590745657F64488C68051FD85ED786CE79BA53286A7F7A1B5}
2023-04-21 08:30:26,306 DEBUG [hz.hazelcast.cached.thread-3]  c.a.s.i.c.DefaultClusterJoinManager ACCEPT(10.255.9.1:5701 <- 10.255.9.3:38113): Node authenticated successfully
2023-04-21 08:30:26,557 INFO  [hz.hazelcast.IO.thread-in-0]  c.hazelcast.nio.tcp.TcpIpConnection [10.255.9.1]:5701 [bitbucket-docker] [3.12.13] Initialized new cluster connection between /10.255.9.1:5701 and /10.255.9.3:38113
2023-04-21 08:30:31,643 INFO  [hz.hazelcast.event-1]  c.a.s.i.c.HazelcastClusterService Node '/10.255.9.3:5701' was ADDED to the cluster. Updated cluster: 
	[/10.255.9.1:5701 master this uuid='31eeeedf-3c2c-4a37-947d-a983ad4399d4' vm-id='44ff2601-eb98-46b6-9578-e1e804c5a6ab'], 
	[/10.255.9.3:5701 uuid='3e10e740-313b-4e0f-974e-686a05785240' vm-id='457c6c42-b8f7-49b7-a194-54a549f48a1f']
2023-04-21 08:30:31,644 INFO  [hz.hazelcast.priority-generic-operation.thread-0]  c.h.internal.cluster.ClusterService [10.255.9.1]:5701 [bitbucket-docker] [3.12.13] 

Members {size:2, ver:3} [
	Member [10.255.9.1]:5701 - 31eeeedf-3c2c-4a37-947d-a983ad4399d4 this
	Member [10.255.9.3]:5701 - 3e10e740-313b-4e0f-974e-686a05785240 lite
]


以下は、最近クラスターに参加した新しいノードのログのサンプルです。

2023-04-21 08:31:29,725 INFO  [spring-startup]  c.a.s.i.hazelcast.HazelcastLifecycle Promoting Hazelcast instance at 10.255.9.3:5701 to full member
2023-04-21 08:31:29,728 INFO  [hz.hazelcast.priority-generic-operation.thread-0]  c.h.i.cluster.impl.MembershipManager [10.255.9.3]:5701 [bitbucket-docker] [3.12.13] Member [10.255.9.3]:5701 - 3e10e740-313b-4e0f-974e-686a05785240 this lite is promoted to normal member.
2023-04-21 08:31:29,729 INFO  [hz.hazelcast.priority-generic-operation.thread-0]  c.h.internal.cluster.ClusterService [10.255.9.3]:5701 [bitbucket-docker] [3.12.13] 

Members {size:2, ver:4} [
	Member [10.255.9.1]:5701 - 31eeeedf-3c2c-4a37-947d-a983ad4399d4
	Member [10.255.9.3]:5701 - 3e10e740-313b-4e0f-974e-686a05785240 this
]


類似のログが見つからない場合、ノードは互いを検出していません。


ソリューション

オプション 1

マルチキャストの代わりに TCP/IP をノード検出に使用してください。

  • <BITBUCKET_HOME>/shared/bitbucket.properties  を以下の設定に編集します。

    # Disable multicast
    hazelcast.network.multicast=false
     
    # Use TCP/IP
    hazelcast.network.tcpip=true
    
    # IP addresses of some or all of the cluster nodes. 
    # Not all of the cluster nodes have to be listed here but at least one of them has to be active when a new node joins
    hazelcast.network.tcpip.members=192.168.0.1:5701,192.168.0.2:5701,192.168.0.3:5701

オプション 2

それでもマルチキャストが望ましい場合は、次の回避策を使用できます。これには、ノードに対してローカルの、新しい bitbucket.properties の作成が含まれます。

  • <BITBUCKET_HOME> に新しい bitbucket.properties ファイルを作成します。このファイルは共有ではなく、特定ノードに対するローカル ファイルです。
  • 次のプロパティをローカルの <BITBUCKET_HOME>/bitbucket.properties ファイルに追加します。

    # Specify the public address to be used explicitly
    hazelcast.local.public.address=192.168.0.1:5701



最終更新日 2023 年 4 月 21 日

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

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