API サーバーでのクラスター接続に関する問題の基本的なトラブルシューティング
この記事では、Kubernetes クラスターのコマンド ライン ツール (kubectl) またはその他のツール (プログラミング言語を介した REST API の使用など) を使用してクラスターの API サーバーに到達できない場合の、Azure Kubernetes Service (AKS) クラスターへの接続の問題について説明します。
前提条件
根本原因と解決策
API サーバーへの接続の問題はさまざまな理由で発生する可能性がありますが、根本原因は多くの場合、次のいずれかのエラーに関連しています。
- ネットワーク
- 認証
- 承認
次の一般的なトラブルシューティング手順を実行して、AKS クラスターの API サーバーへの接続を確認できます。
Azure CLI で次の az aks show コマンドを入力します。 このコマンドは、AKS クラスターの完全修飾ドメイン名 (FQDN) を取得します。
az aks show --resource-group <cluster-resource-group> --name <cluster-name> --query fqdn
FQDN を使用して、ネーム サーバー参照 (nslookup)、クライアント URL (curl)、および telnet コマンドを使用して、クライアント コンピューターから API サーバーに到達できるかどうかを確認します。
# Check if the DNS Resolution is working: $ nslookup <cluster-fqdn> # Then check if the API Server is reachable: $ curl -Iv https://<cluster-fqdn> $ telnet <cluster-fqdn> 443
AKS クラスターがプライベートの場合は、AKS クラスターの Azure Virtual Network にアクセスできる仮想マシン (VM) からコマンドを実行してください。 プライベート クラスターへの接続については、「 Options」を参照してください。
必要に応じて、API サーバーが承認する IP 範囲にクライアント IP アドレスを追加できるように Client IP アドレスが API サーバーにアクセスできないようにトラブルシューティングの記事の手順に従います。
クライアント コンピューター上の kubectl のバージョンが、AKS クラスターのバージョンのツールの背後にある 2 つ以上のマイナー バージョンではないことを確認します。 最新バージョンの kubectl をインストールするには、Azure CLI で az aks install-cli コマンドを実行します。 その後、 kubectl version コマンドを実行して、新しいインストールのバージョン番号を確認できます。
たとえば、Linux では次のコマンドを実行します。
sudo az aks install-cli kubectl version --client
その他のクライアント オペレーティング システムの場合は、 kubectl のインストール手順を使用します。
必要に応じて、接続時に Config ファイルを使用できないためトラブルシューティング記事の手順に従ってください。Kubernetes 構成ファイル (config) は有効であり、接続時に見つかります。
必要に応じて、クラスター ノードの詳細を一覧表示できるように、トラブルシューティングの記事 ユーザーがクラスター リソースを取得できないの手順に従います。
ファイアウォールを使用して AKS ワーカー ノードからのエグレス トラフィックを制御する場合は、ファイアウォールで AKS に必要な 最小のエグレス ルールが許可されていることを確認。
AKS ノードに関連付けられている network セキュリティ グループ が AKS ノード内の TCP ポート 10250 での通信を許可していることを確認します。
その他の一般的なトラブルシューティング手順については、kubectl やその他のサード パーティ製ツールが API サーバーに接続する場合の TCP タイムアウトを参照してください。
お問い合わせはこちらから
質問がある場合やヘルプが必要な場合は、サポート要求を作成するか、Azure コミュニティ サポートにお問い合わせください。 Azure フィードバック コミュニティに製品フィードバックを送信することもできます。