この記事では、Azure Kubernetes Fleet Manager DNS ベースの負荷分散のトラブルシューティング情報を提供します。 Fleet Manager DNS 負荷分散では、Azure Traffic Manager を使用して、複数の Azure Kubernetes Service (AKS) メンバー クラスターからのパブリック エンドポイント間のトラフィックのバランスを取ります。
Fleet Manager ハブ クラスターを使用したトラブルシューティング
ユーザーは、Azure Traffic Manager プロファイルが作成される Azure サブスクリプションとリソース グループにアクセスできる必要があります。
Azure CLI バージョン 2.72.0 以降のバージョンをインストールまたはアップグレードします。
Kubernetes kubectl コマンド ライン ツールがインストールされていることを確認します。 az aks install-cli コマンドを実行して kubectl をインストールできます。
az extension add
command を使用して、fleet Azure CLI 拡張機能をインストールします。 インストールされているバージョンが 1.5.2 以上であることを確認します。az extension add --name fleet
Fleet Manager ハブ クラスター Kubernetes API にアクセスします。 詳細については、「 Fleet Manager ハブ クラスター API へのアクセス」を参照してください。
シナリオ 1: TrafficManagerProfile または Traffic Manager を作成できない
このセクションでは、 TrafficManagerProfile
Kubernetes オブジェクトとそれに関連付けられている Azure Traffic Manager リソースが作成されないシナリオの一般的な理由と解決策について説明します。
適切な解決を決定するには、次のコマンドを使用して、Fleet Manager ハブ クラスター上の TrafficManagerProfile
オブジェクトの状態を確認します。
kubectl get trafficmanagerprofile -n <namespace> <profile-name> -o yaml
エラー 1: クライアントにアクションを実行するための承認がありません
この問題は、次のいずれかの条件が満たされた場合に発生する可能性があります。
- 存在しない Azure リソース グループは、
TrafficManagerProfile
マニフェストで指定されます。 - リソース グループが Fleet Manager リソースと同じ Azure サブスクリプションにありません。
- Fleet Manager ハブ クラスター ID には、指定されたリソース グループ内で Azure Traffic Manager プロファイルを作成および管理するためのアクセス許可がありません。
エラーの詳細については、 TrafficManagerProfile
の状態を確認できます。 次の TrafficManagerProfile
の状態の例では、アクセス許可が不十分です。
status:
conditions:
- lastTransitionTime: "2025-04-29T02:57:33Z"
message: |
Invalid profile: GET https://management.azure.com/subscriptions/xxx/resourceGroups/your-fleet-atm-rg/providers/Microsoft.Network/trafficmanagerprofiles/fleet-yyyy
--------------------------------------------------------------------------------
RESPONSE 403: 403 Forbidden
ERROR CODE: AuthorizationFailed
--------------------------------------------------------------------------------
{
"error": {
"code": "AuthorizationFailed",
"message": "The client 'xxx' with object id 'xxx' does not have authorization to perform action
'Microsoft.Network/trafficmanagerprofiles/read' over scope
'/subscriptions/xxx/resourceGroups/your-fleet-atm-rg/providers/Microsoft.Network/trafficmanagerprofiles/fleet-yyyy' or the
scope is invalid. If access was recently granted, please refresh your credentials."
}
}
--------------------------------------------------------------------------------
observedGeneration: 1
reason: Invalid
status: "False"
type: Programmed
解決策
この問題を解決するには、次の手順に従ってください。
- Azure リソース グループが存在し、Fleet Manager と同じ Azure サブスクリプション値を持っていることを確認します。
- Fleet Manager ハブ クラスター ID に、リソース グループをスコープとする
Traffic Manager Contributor
ロールが付与されていることを確認します。 詳細については、「 Fleet Manager のアクセス許可を構成する」を参照してください。
エラー 2: ドメイン名を使用できません
この問題は、生成された DNS プレフィックスが別の Azure Traffic Manager プロファイルによって既に使用されている場合に発生する可能性があります。 DNS プレフィックスは、TrafficManagerProfile
マニフェストの名前空間とmetadata.name
フィールドで構成されます。 たとえば、名前空間が team-a
され、 metadata.name
が webapp
されている場合、DNS プレフィックスは team-a-webapp
。
次の TrafficManagerProfile
状態の例は、ドメイン名が使用できないことを示しています。
status:
conditions:
- lastTransitionTime: "2025-04-29T06:39:10Z"
message: Domain name is not available. Please choose a different profile name or namespace
observedGeneration: 2
reason: DNSNameNotAvailable
status: "False"
type: Programmed
解決策
この問題を解決するには、 nslookup
または同様のツールを使用して、完全な DNS 名 ( team-a-webapp.trafficmanager.net
など) が既に終了しているかどうかを判断します。 名前が使用できない場合は、次のいずれかの代替解決策を検討してください。
-
TrafficManagerProfile
マニフェストのmetadata.name
フィールドを一意の名前に変更します。 -
TrafficManagerProfile
マニフェストには別の名前空間を使用します。 この選択は、TrafficManagerBackend
オブジェクトとServiceExport
オブジェクトに影響します。 これらのオブジェクトは、同じ名前空間に存在する必要があります。
エラー 3: Azure Traffic Manager サブスクリプションの制限に達しました
この問題は、1 つの Azure サブスクリプション内に 200 を超える Traffic Manager プロファイルまたはエンドポイントが存在する場合に発生する可能性があります。
次の TrafficManagerProfile
状態の例は、Azure Traffic Manager プロファイルの制限に達したことを示しています。
status:
conditions:
- lastTransitionTime: "2025-04-29T06:39:10Z"
message: Azure Traffic Manager profile limits reached.
observedGeneration: 2
reason: Invalid
status: "False"
type: Programmed
解決策
未使用のプロファイルを削除するか、制限の引き上げを要求することを検討してください。 詳細については、「 Azure Traffic Manager の制限」を参照してください。
エラー 4: Azure Traffic Manager からエラーが返される
この問題は、Azure Traffic Manager サービスがプロファイルの作成時にエラーを返した場合に発生する可能性があります。
次の TrafficManagerProfile
の状態の例は、このエラーを示しています。
status:
conditions:
- lastTransitionTime: "2025-04-29T06:39:10Z"
message: Azure Traffic Manager error message is displayed here.
observedGeneration: 2
reason: Invalid
status: "False"
type: Programmed
解決策
エラーが解決しない場合は、Azure Traffic Manager サービスの正常性を確認します。
シナリオ 2: TrafficManagerBackend を作成できない
このセクションでは、 TrafficManagerBackend
Kubernetes オブジェクトを作成できないシナリオの一般的な原因と推奨される解決策について説明します。
適切な解決を決定するには、次のコマンドを使用して、Fleet Manager ハブ クラスター上の TrafficManagerBackend
オブジェクトの状態を確認します。
kubectl get trafficmanagerbackend -n <namespace> <backend-name> -o yaml
エラー 1: TrafficManagerProfile が見つからないか、trafficManagerProfile が無効です
この問題は、次のいずれかの条件が満たされた場合に発生する可能性があります。
-
TrafficManagerBackend
は、TrafficManagerProfile
とは異なる名前空間に作成されました。 -
TrafficManagerProfile
オブジェクトは存在しますが、関連付けられている Azure Traffic Manager リソースが見つかりませんでした。
エラーを示す TrafficManagerBackend
状態の例を次に示します。
status:
conditions:
- lastTransitionTime: "2025-04-29T06:43:57Z"
message: TrafficManagerProfile "nginx-nginx-profile" is not found
observedGeneration: 1
reason: Invalid
status: "False"
type: Accepted
Azure Traffic Manager リソースがありません。
status:
conditions:
- lastTransitionTime: "2025-04-29T07:00:04Z"
message: 'Invalid trafficManagerProfile "nginx-nginx-profile": Domain name is not available.
Please choose a different profile name or namespace'
observedGeneration: 1
reason: Invalid
status: "False"
type: Accepted
解決策
この問題を解決するには、次の手順に従ってください。
-
TrafficManagerProfile
と同じ名前空間にTrafficManagerBackend
を作成してください。 -
TrafficManagerProfile
のProgrammed
条件がAccepted
されていることを確認します。 有効でない場合は、プロファイル定義の有効性を確認し、再送信します。 - Azure Traffic Manager リソースが存在することを確認します。 リソースを再作成するには、Fleet Manager ハブ クラスターから
TrafficManagerProfile
を削除します。 そして、それを再適用します。
エラー 2: 無効なサービスまたは ServiceExport
この問題は、次のいずれかの条件が満たされた場合に発生する可能性があります。
-
Service
は、TrafficManagerBackend
オブジェクトとは異なる名前空間に作成されました。 -
Service
は存在しますが、ServiceExport
オブジェクトはTrafficManagerBackend
と同じ名前空間に作成されませんでした。 -
Service
はLoadBalancer
型として定義されていません。 -
Service
は、Azure パブリック IP アドレスを介して公開されていないか、DNS 名が割り当てられません。
TrafficManagerBackend
状態の次の例は、エラーを示しています。
status:
conditions:
- lastTransitionTime: "2025-04-29T07:50:49Z"
message: ServiceImport "invalid-service" is not found
observedGeneration: 1
reason: Invalid
status: "False"
type: Accepted
Service
は、LoadBalancer
型として定義されていません。
status:
conditions:
- lastTransitionTime: "2025-04-29T07:56:05Z"
message: '1 service(s) exported from clusters cannot be exposed as the Azure
Traffic Manager, for example, service exported from aks-member-5 is invalid:
unsupported service type "ClusterIP"'
observedGeneration: 1
reason: Invalid
status: "False"
type: Accepted
解決策
この問題を解決するには、次の手順に従ってください。
-
ServiceExport
を作成して、メンバー クラスターの少なくとも 1 つのService
が、TrafficManagerBackend
オブジェクトの同じ名前空間にエクスポートされていることを確認します。 - エクスポートされた
Service
がロード バランサーの種類であり、Azure パブリック IP アドレスを介して公開されていることを確認します。 このアドレスには、Traffic Manager プロファイルで使用する DNS 名が割り当てられている必要があります。
エラー 3: Azure Traffic Manager プロファイルが見つかりません
この問題は、次のいずれかの条件が満たされた場合に発生する可能性があります。
-
TrafficManagerProfile
オブジェクトは存在しますが、関連付けられている Azure Traffic Manager リソースが見つかりません。 - Fleet Manager ハブ クラスター ID には、指定されたリソース グループ内の Azure Traffic Manager プロファイルまたはエンドポイントを作成および管理するためのアクセス許可がありません。
次の TrafficManagerBackend
状態の例は、エラーを示しています。
status:
conditions:
- lastTransitionTime: "2025-05-08T09:38:36Z"
message: Azure Traffic Manager profile "fleet-6dd24764-0e46-4b52-b9c6-cc2a3f2535f9" under "your-fleet-atm-rg" is not found
observedGeneration: 2
reason: Invalid
status: "False"
type: Accepted
解決策
この問題を解決するには、次の手順に従ってください。
- Azure Traffic Manager リソースが存在することを確認します。 リソースを再作成するには、Fleet Manager ハブ クラスターから
TrafficManagerProfile
プロファイルを削除してから、再適用します。 - Fleet Manager ハブ クラスター ID に、リソース グループをスコープとする
Traffic Manager Contributor
ロールが付与されていることを確認します。 詳細については、「 Fleet Manager のアクセス許可を構成する」を参照してください。
エラー 4: Azure Traffic Manager プロファイルの制限に達しました
この問題は、1 つの Azure サブスクリプション内に 200 を超える Azure Traffic Manager エンドポイントが作成される場合に発生する可能性があります。
次の TrafficManagerBackend
状態の例は、エラーを示しています。
status:
conditions:
- lastTransitionTime: "2025-04-29T06:39:10Z"
message: Azure Traffic Manager profile limits reached.
observedGeneration: 2
reason: Invalid
status: "False"
type: Programmed
解決策
未使用のエンドポイントを削除することを検討してください。 詳細については、「 Azure Traffic Manager の制限」を参照してください。
Azure Log Analytics を使用したトラブルシューティング
Fleet Manager ハブ クラスターのクエリに加えて、Azure Log Analytics を使用してトラブルシューティングを行うことができます。
トラフィックマネージャープロフィール
trafficmanagerprofile/controller.go
を使用して、fleet-hub-net-controller-manager
カテゴリのエントリをフィルター処理します。
AzureDiagnostics
| where Category == "fleet-hub-net-controller-manager"
| project TimeGenerated, ResourceId, log_s
| where ResourceId == "/subscriptions/xxx/resourceGroups/your-fleet-rg/providers/Microsoft.ContainerService/fleets/your-fleet"
| where log_s contains "trafficmanagerprofile/controller.go"
| limit 1000
トラフィックマネージャーバックエンド
trafficmanagerbackend/controller.go
を使用して、fleet-hub-net-controller-manager
カテゴリのエントリをフィルター処理します。
AzureDiagnostics
| where Category == "fleet-hub-net-controller-manager"
| project TimeGenerated, ResourceId, log_s
| where ResourceId == "/subscriptions/xxx/resourceGroups/your-fleet-rg/providers/Microsoft.ContainerService/fleets/your-fleet"
| where log_s contains "trafficmanagerbackend/controller.go"
| limit 1000
サードパーティのお問い合わせ窓口に関する免責事項
マイクロソフトは、このトピックについての追加情報を見つけるのに役立つよう、サードパーティの連絡先情報を提供しています。 この連絡先情報は予告なしに変更されることがあります。 マイクロソフトは、第三者の連絡先情報の正確性を保証しません。
お問い合わせはこちらから
質問がある場合やヘルプが必要な場合は、 サポートリクエストを作成するか、 Azure コミュニティ サポートに問い合わせてください。 Azure フィードバック コミュニティに製品フィードバックを送信することもできます。