はじめに
Azure Databricks でクラスターの起動に失敗するケースがいくつかありますが、今回は下記 Instances Unreachable エラーが出力される場合のトラブルシューティングに焦点を絞ります。基本的にはクラスター ノードからコントロール プレーンに接続できない際に発生するエラーです。
Cluster terminated. Reason: Instances Unreachable
An unexpected error was encountered while setting up the cluster. Please retry and contact Azure Databricks if the problem persists.
Internal error message: Timeout while placing node
クラスターが終了しました。 理由: 予期しない起動エラー
クラスターのセットアップ中に予期しないエラーが発生しました。もう一度試してもエラーが続く場合はDatabricksにお問い合わせください。
内部エラーメッセージ: Timeout while placing nodes.
トラブルシューティング
1. クラスター名の確認
クラスター名に日本語 (マルチバイト文字) が含まれているとクラスター作成時にエラーが発生します。
Azure Databricks でクラスターを作成するとき、デフォルトでは<ユーザー名>'s Cluster
なので、ユーザー名が日本語の場合は注意する必要があります。
2. ネットワーク構成の確認
Databricks で VNet Injection を設定すると、クラスター ノードからコントロール プレーンへの接続方式に様々な選択肢があります。4 つの接続方式例でのトラブルシューティングについて説明していきます。
例 2-1. 強制トンネリングをオンプレミス環境を経由する場合
強制トンネリングでオンプレミス環境を経由する場合は主に以下を確認する必要があります。
- オンプレミス環境からインターネットに接続する際のアウトバウンドに 公式ページに記載されたルールが許可されているか
- ワークスペースのパブリック アクセス設定が有効かどうか
強制トンネリングで Hub VNet を経由する場合も同様となります。下図はオンプレミス環境を経由する際の構成例です。
例 2-2. Azure Firewall を経由する場合
Azure Firewall を経由する場合は主に以下を確認する必要があります。
- 公式ページに従い適切なルールが Azure Firewall で許可されているか
- クラスター ノードから Azure Firewall に疎通できているか (User Defined Route、VNet Peering、NSG の設定が正しいか)
- ワークスペースのパブリック アクセス設定が有効かどうか
下図は Azure Firewall を経由する際の構成例です。
例 2-3. Private Endpoint を経由する場合
Private Endpoint を経由する場合は主に以下を確認する必要があります。
- Private DNS Zone 等で名前解決できているか
- (Private Endpoint が別の VNet にあるとき) VNet Peering や NSG アウトバウンドが正しく設定できているか
下図は Private Endpoint を経由する際の構成例です。
例 2-4. Databricks VNet から直接パブリック アクセスする場合
Databricks VNet からコントロール プレーンに直接パブリック アクセスする場合は主に以下を確認する必要があります。
- NSG アウトバウンドに問題がないか
- ワークスペースのパブリック アクセス設定が有効かどうか
Azure のデータセンター間通信はパブリック アクセスであっても外部インターネットを経由せず、構成としては下図となります。
なお、ワークスペース作成時に必須の NSG ルール
をすべてのルール
と設定すれば、NSG に必要なルールが自動で追加されます。
自動で追加される NSG ルールは下図となります。
3. Init Script の確認
Init Script で hosts
等のネットワーク設定を入れているかを確認します。なお、Init Script が実行される前にコントロール プレーンへの接続が発生します。 ですので、adb-XXXXX.XX.azuredatabricks.net
のプライベート エンドポイントを Init Script で追記した hosts
で名前解決を行おうとしても、クラスター起動に失敗する可能性があるので注意しましょう。
おわりに
Azure Databricks でのクラスター起動時に Instance Unreachable エラーで失敗する際のトラブルシューティング方法について説明しました。他のエラーについては下記ページを参考にトラブルシューティングしましょう。