Azure CycleCloud クラスター ノードには、ネットワークの既定の設定が付属しています。 これらの設定は、クラスター テンプレートのノード定義セクションで変更できます。
ネットワーク インターフェイス
Azure CycleCloud は、クラスター用の Azure VM を作成するときに、仮想ネットワーク インターフェイスを VM に接続します。 仮想マシン スケール セットの場合、仮想ネットワーク インターフェイスはロード バランサーに接続します。
クラスター テンプレートのノードのネットワーク インターフェイス定義セクションを変更することで、ノードのネットワーク設定を構成できます。
パブリック IP アドレスの割り当て
ノードに AssociatePublicIpAddress 属性を追加して、ノードがパブリック IP アドレスを受信するかどうかを指定します。 例えば次が挙げられます。
[[node scheduler]]
[[[network-interface eth0]]]
AssociatePublicIpAddress = true
上記の構成では、仮想ネットワークのネットワーク セキュリティ グループで許可されているポート上のスケジューラ ノードへのパブリック アクセスが許可されます。
既定では、ノードは、クラスターを起動するたびに変更される動的パブリック IP アドレスを取得します。 静的パブリック IP アドレスをノードに割り当てるには、まず Azure サブスクリプションにパブリック IP アドレスを作成します。 次に、 PublicIP 属性をノード ネットワーク インターフェイス セクションに追加し、作成された PublicIP オブジェクトのリソース ID を割り当てます。
[[node scheduler]]
[[[network-interface eth0]]]
PublicIp = /subscriptions/${subscription_id/resourceGroups/${resource_group_name}/providers/Microsoft.Network/publicIPAddresses/${public-ip-name}
または、Azure サブスクリプションにネットワーク インターフェイスを作成し、 そのネットワーク インターフェイスにパブリック IP アドレスをアタッチします。 次に、ノード構成でそのネットワーク インターフェイス ID を指定します。
[[node scheduler]]
[[[network-interface eth0]]]
NetworkInterfaceId = /subscriptions/${subscription_id/resourceGroups/${resource_group_name}/providers/Microsoft.Network/networkInterfaces/${network-interface-name}
パブリック DNS ラベルの割り当て
パブリック ネットワーク インターフェイスに PublicDnsLabel を追加すると、その IP アドレスの DNS 名をカスタマイズできます。
[[node scheduler]]
[[network-interface eth0]]
AssociatePublicIpAddress = true
PublicDnsLabel = myuniquename
上記の構成では、静的に割り当てられたパブリック IP アドレスと、に解決される VM の DNS エントリが提供されます ( VM の対応する Azure の場所と一致します)。
プライベート IP アドレスの割り当て
既定では、仮想マシンは Azure で動的に割り当てられたプライベート IP アドレスを取得します。 場合によっては、ノードの固定プライベート IP アドレスが必要になります。 このオプションを構成するには、クラスター構成のネットワーク インターフェイス セクションを使用します。
[[[network-interface eth0]]]
PrivateIp = x.x.x.x
指定するプライベート IP アドレスは、関連付けられているサブネットに対して有効である必要があります。 Azure では、サブネット内の最初の 4 つの IP と最後の IP が予約されます。 これらのアドレスをノードに手動で割り当てることはできません。
ネットワーク セキュリティ グループ
Azure CycleCloud は、ユーザー定義の仮想ネットワークとサブネットに仮想マシンと仮想マシン スケール セットをプロビジョニングします。 仮想ネットワークに関連付けられているネットワーク セキュリティ グループは、ノード上の特定のポートへのアクセスを制御します。 詳細については、 仮想ネットワークのドキュメントを参照してください。
AssociatePublicIpAddress = trueを使用してノードのネットワーク インターフェイスを構成したり、PublicIpを割り当てたりすると、ノードは自動的にネットワーク セキュリティ グループを受け取ります。
このネットワーク セキュリティ グループは、 SecurityGroupを使用して指定できます。
SecurityGroupを省略すると、ノードの input-endpoints セクションからネットワーク セキュリティ グループが自動的に生成されます。 インターフェイスに指定する SecurityGroup は、 input-endpoints用に作成された自動 nsg をオーバーライドします。
SecurityGroupを指定しない限り、すべてのインターフェイスは、input-endpoint定義から自動 nsg を取得します。
必要なポートとトラフィック
CycleCloudのネットワークセキュリティグループ(NSG)、ファイアウォールの設定、またはアプライアンスのルーティングを行う際、以下の表を権威的なトラフィックマトリックスとして使用してください。 インバウン ドと アウトバウン ドは、それぞれ宛先と送信元でのルールの方向を表します。 各送信元と宛先を該当するサブネット、プライベートIPアドレス、または承認されたクライアント範囲に制限します。
CycleCloudとクラスタトラフィック
| Source | 行き先 | 方向 | Protocol | Port | Purpose | Applicability |
|---|---|---|---|---|---|---|
| 管理者およびAPIクライアント | CycleCloud VM | Inbound | TCP | 443 | CycleCloudのウェブインターフェースとHTTPS上のAPI | CycleCloudにアクセスするユーザーおよびツールに必須です。 承認された民間または企業の供給源をご利用ください。 |
| Administrators | CycleCloud VM | Inbound | TCP | 22 | 管理者SSHアクセス | Optional. Azure Bastion、VPN、ExpressRouteを好み、送信元を制限しましょう。 |
| クラスター ノード | CycleCloud VM | クラスターノードからのアウトバウンド;CycleCloudへのインバウンド | TCP | 9443 | ノードステータス、APIリクエストの自動スケーリング、HTTPSによるサービス同期 | CycleCloud 8におけるノードとCycleCloud間の直接通信に必要です。 |
| CycleCloud VM | プロキシノードの返還 | CycleCloudからの送信; プロキシへの受信 | TCP | 22 | リターンプロキシのSSHトンネルを確立します | 返品プロキシを有効にした時のみ必要です。 |
| クラスター ノード | プロキシノードの返還 | クラスタノードからのアウトバウンド;プロキシへのインバウンド | TCP | 37140 | リターンプロキシ経由でHTTPSトラフィックをCycleCloudポート9443に転送します。 | 返品プロキシを有効にした時のみ必要です。 |
| CycleCloud VM | クラスタスケジューラ、ログイン、またはその他の管理ノード | CycleCloud からの送信; クラスターノードへの受信 | TCP | 22 | ノードオーケストレーション、システムアクセス、ジョブ監視 | CycleCloudがSSHを使って管理ノードに接続する必要がある場合に必要です。 |
| クラスターユーザー | スケジューラまたはログインノード | Inbound | TCP | 22 | ユーザーSSHアクセスとジョブ提出 | クラスタアクセス設計に基づくオプションです。 送信元は承認されたユーザーネットワークに限定してください。 |
| 管理者または利用者 | Windowsクラスタノード | Inbound | TCP | 3389 | リモート デスクトップ プロトコル (RDP) アクセス | Windowsノードではオプションです。 送信元は承認されたユーザーネットワークに限定してください。 |
CycleCloud 7はまた、クラスタノードからCycleCloud VMへTCP 5672を使用して、高度なメッセージキューイングプロトコル(AMQP)トラフィックを処理しています。 リターンプロキシが有効になると、CycleCloud 7ノードはTCP 37141をプロキシに使い、トラフィックをポート5672に転送します。 CycleCloud 8専用の展開のためにポート5672や37141を開かない方がいいです。
スケジューラ、監視、ワークロードトラフィック
| Source | 行き先 | 方向 | Protocol | Port | Purpose | Applicability |
|---|---|---|---|---|---|---|
| Slurmクライアントとコンピュートノード | スラームスケジューラノード | スケジューラーへの入力 | TCP | 6817 |
slurmctld との通信 |
デフォルトのポートを使うとSlurmには必須です。
SlurmctldPortをカスタマイズする場合はルールを更新してください。 |
| スラームスケジューラノード | スラーム計算ノード | 計算ノードへのインバウンド | TCP | 6818 |
slurmd との通信 |
デフォルトのポートを使うとSlurmには必須です。
SlurmdPortをカスタマイズする場合はルールを更新してください。 |
| スケジューラおよび計算ノード | スケジューラおよび計算ノード | 受信と送信 | スケジューラ定義 | スケジューラ定義済み | スケジューラデーモンとオートスケーリングアダプター通信 | 選択したスケジューラーでは必須です。 PBS Proでは、IBM LSF、Grid Engine、またはHTCondorが、そのスケジューラとクラスタテンプレートで設定したポートを許可しています。 CycleCloudは共通の一つのレンジを定義していません。 |
| CycleCloud 7 VM | クラスタプライマリノード | CycleCloud からの送信; プライマリ ノードへの受信 | TCP | 8652 | 神経節モニタリング | CycleCloud 7のみです。 CycleCloud 8はAzure Monitorからクラスタのメトリクスを取得し、このインバウンドルールを必要としません。 |
| クラスター ノード | 共有ファイルシステムエンドポイント | インバウンドとアウトバウンド | TCP | 2049 | ネットワークファイルシステム(NFS)アクセス | Optional. NFSベースの共有ストレージにのみ必要です。 選択したNFSバージョンに必要な追加ポートを追加し、マウント設定を行ってください。 |
| クラスター ノード | ディレクトリサービス | インバウンドとアウトバウンド | TCP | 389人または636人 | 軽量ディレクトリアクセスプロトコル(LDAP)、またはTLS認証上のLDAP | Optional. 暗号化されたLDAPにはポート636を好みます。 アイデンティティデザインで必要なポートを使いましょう。 |
標準的なSlurm展開では、MungeクライアントはUnixドメインソケットを介してローカル munged デーモンと通信します。 TCPポート4065をノード間NSGルールとして追加するのは、カスタムコンポーネントがそのポートを明示的に使っている場合を除きましょう。
Azure サービスおよびパッケージのエグレス
| Source | 行き先 | 方向 | Protocol | Port | Purpose | Applicability |
|---|---|---|---|---|---|---|
| CycleCloud VM |
AzureResourceManager サービス タグ |
送信 | TCP | 443 | Azure リソースのデプロイおよび管理 | 必須です。 |
| CycleCloud VM |
AzureActiveDirectory サービス タグ |
送信 | TCP | 443 | Microsoft Entra ID に対して認証する | Microsoft Entra認証または管理型IDを使用する展開時に必要です。 |
| CycleCloud VM |
AzureMonitor サービスタグと必要なテレメトリエンドポイント |
送信 | TCP | 443 | メトリックを取得し、テレメトリを送信 | CycleCloud 8の監視に必須です。 完全限定ドメイン名(FQDN)でフィルタリングするファイアウォールについては、「 ロックダウンネットワークで動作」に記載されているテレメトリーおよびアプリケーションインサイトエンドポイントを許可してください。 |
| CycleCloud VM | ratecard.azure-api.net |
送信 | TCP | 443 | Azure の価格データを取得する | 費用見積もりに必須です。 利用データはRateCard APIアクセスなしでも利用可能ですが、コストは表示されません。 |
| CycleCloud VM およびクラスタノード |
Storage サービスタグ、サービスエンドポイント、またはプライベートエンドポイント |
送信 | TCP | 443 | CycleCloud ストレージとステージ済みのクラスター成果物にアクセスする | 必須です。 プライベートエンドポイントを使う場合は、プライベートDNSを設定し、公開ストレージアクセスを明示的に制限または無効にしてください。 |
| CycleCloud VM およびクラスタノード | 承認済みパッケージリポジトリとGitHubダウンロードエンドポイント | 送信 | TCP | 443 | インストールパッケージとCycleCloudプロジェクトをダウンロード | カスタムイメージ、プライベートミラー、事前段階プロジェクトからアーティファクトが入手できない場合のみ必要です。 ダウンロードリダイレクトで到達した github.com および到達先のホストを許可するか、承認されたファイアウォールやHTTPSプロキシ経由でトラフィックをルーティングしてください。 |
NSGはステートフルなので、レスポンストラフィック用の別ルールは必要ありません。 Azure Firewall、ネットワーク仮想アプライアンス、オンプレミスファイアウォールを使用する場合は、同等のルートとルールを設定してください。 ロックダウン展開については、「 ロックダウンネットワークでの運用」を参照してください。
ノード配列内の入力エンドポイント
[[nodearray execute]]
[[[network-interface eth0]]]
AssociatePublicIpAddress = true
[[[input-endpoint SSH]]]
PrivatePort = 22
PublicPort = 10000
[[[input-endpoint MyCustomPort]]]
PrivatePort = 999
PublicPort = 10999
Protocol = tcp
上記の構成では、ネットワーク セキュリティ グループが仮想ネットワークに対して許可するポート上の実行ノードへのパブリック アクセスを有効にします。 ノード配列の場合、 PublicPort は配列内のノードの基本ポート番号です。 ノード配列用に予約されているポートの範囲は、エンドポイントごとに 500 ポートです。 エンドポイントは既定で TCP プロトコルですが、UDP は Protocol = UDPを設定することでもサポートされます。 既定では、ノードは、クラスターを起動するたびに変更される動的パブリック IP アドレスを取得します。 静的パブリック IP アドレスをノードに割り当てるには、プライマリ インターフェイスのネットワーク インターフェイス構成に PublicIP を追加します。
リターン プロキシ ノードの場合、 AssociatePublicIpAddressを指定しないと、システムによってパブリック IP アドレスが自動的に作成されます。
AssociatePublicIpAddressを False に設定すると、ノードは警告で失敗し、ノードの自動 nsg は作成されません。
注
AssociatePublicIpAddressを使用してノードを起動すると、ノードまたはクラスターを削除するまで、ノードはその IP アドレスを保持します。