このトピックでは、Container Service for Kubernetes (ACK) コンソールがクラスタにアクセスできない場合の症状、根本原因、および解決策について説明します。API サーバー リクエストの例外、API サーバー の障害が原因でポッドログへのアクセス中に発生したエラー、現在のアカウントに必要なクラスタロールベースアクセス制御 (RBAC) 権限がないなどのシナリオが含まれます。
クラスタリソースにアクセスするときに API サーバーリクエストの例外が発生し、ErrorQueryClusterNamespace または APIServer.500 エラーコードが返される
問題
ACK コンソールを使用してクラスタリソースにアクセスすると、システムから「現在のクラスタの API サーバーへのリクエストの処理中にエラーが発生しました」というエラーメッセージが返されます。エラーコードは ErrorQueryClusterNamespace または APIServer.500 です。

原因
API サーバーの負荷分散構成が無効であるか、API サーバーのステータスが異常です。その結果、ACK 管理サービスは API サーバーに接続できません。
解決策
ACK コンソール にログインします。左側のナビゲーションウィンドウで、[クラスタ] をクリックします。
[クラスタ] ページで、ターゲットクラスタを見つけ、その名前をクリックします。左側のナビゲーションウィンドウで、[クラスタ情報] をクリックします。
クラスタの詳細ページで、[基本情報] タブをクリックし、[API サーバー SLB] の右側のハイパーリンクをクリックして、Server Load Balancer (SLB) コンソール にログインします。
システムに [指定された SLB ID は存在しません。] というメッセージが表示された場合、API サーバーの SLB インスタンスは削除または解放されており、クラスタは復元できません。クラスタを再作成するには、ACK マネージドクラスターを作成する を参照してください。
それ以外の場合は、次の手順に進みます。
SLB インスタンスの [ステータス] が [実行中] であることを確認します。
そうでない場合は、インスタンスの支払いが延滞しているか、期限切れになっているかどうかを確認します。この場合、延滞料金を支払うか、サブスクリプションを更新してから、SLB インスタンスを再起動する必要があります。 SLB インスタンスに関連する延滞料金の詳細については、CLB 課金 を参照してください。
「はい」の場合は、次のステップに進んでください。
[リスナー] タブをクリックして、SLB インスタンスに [フロントエンドプロトコル/ポート] と [バックエンドプロトコル/ポート] の設定が [TCP:6443] に設定されているリスナーがあるかどうか、およびリスナーの [ステータス] 列に [実行中] と表示されているかどうかを確認します。
そうでない場合、API サーバー のリスナーの構成が変更されています。
上記のリスナーが存在するが、リスナーのステータスが [停止] になっている場合は、リスナーを選択して [有効化] をクリックします。
上記のリスナーが存在しない場合は、次の操作を実行します。
ACK マネージドクラスターの場合、チケットを送信 します。
ACK 専用クラスターの場合、すべてのマスターノードがデフォルトサーバーグループに追加されていることを確認します。次に、[フロントエンドプロトコル/ポート] と [バックエンドプロトコル/ポート] の設定が [TCP:6443] に設定されているリスナーを作成し、リスナーを [デフォルトサーバーグループ] に関連付けて、リスナーを起動します。リスナーを追加する方法の詳細については、TCP リスナーを追加する を参照してください。
「はい」の場合は、次のステップに進んでください。
リスナーの [ヘルスチェックステータス] 列に [正常] と表示されているかどうかを確認します。
そうでない場合、API サーバー の SLB インスタンスのバックエンドサーバーが異常です。
ACK マネージドクラスターの場合、チケットを送信 します。
ACK 専用クラスターの場合、トラブルシューティングのために次の操作を実行します。問題が解決しない場合は、チケットを送信 します。
ACK コンソール の ページに移動し、ノードリストでポッドがデプロイされているノードを見つけて、対応する ECS インスタンス ID をクリックして Elastic Compute Service コンソール にリダイレクトします。次に、インスタンスが [実行中] 状態であることを確認します。
ECS コンソール を使用して各マスターノードにログインし、API サーバー のコンテナが正常に実行されているかどうかを確認します。
マスターノードにログインする方法の詳細については、接続方法の概要 を参照してください。
次のいずれかの方法を使用して、API サーバーのコンテナが正常に実行されているかどうかを確認します。
Docker ランタイムを使用するクラスターの場合 :
docker ps | grep kube-apiserverコマンドを実行します。次に、返された出力に基づいて、docker inspectコマンドを実行してコンテナのステータスを確認します。containerd ランタイムを使用するクラスターの場合 :
crictl ps | grep kube-apiserverコマンドを実行します。次に、返された出力に基づいて、crictl inspectコマンドを実行してコンテナのステータスを確認します。
はいの場合は、次のステップに進みます。
上記のリスナーでアクセス制御が有効になっているかどうかを確認します。
有効になっている場合、アクセス制御 のリスナーのホワイトリストが正しく構成されていないことを示します。この問題を解決するには、CIDR ブロック
100.104.0.0/16をホワイトリストに追加します。CIDR ブロックは、ACK 管理サービスから API サーバーに送信される内部リクエストの送信元 IP アドレスを指定します。そうでない場合は、次の手順に進みます。
上記の理由で例外が発生していない場合は、チケットを送信 してください。
ポッドログにアクセスするときに API サーバーリクエストの例外が発生する
この例外がポッドのログにアクセスするときに発生したが、他のクラスタリソースには正常にアクセスできる場合は、次の操作を実行して問題をトラブルシューティングします。
ポッドのステータスが [実行中] であることを確認します。そうでない場合は、ポッドのトラブルシューティング を参照してください。
ページに移動し、ノードリストでポッドがデプロイされているノードを見つけて、対応する ECS インスタンス ID をクリックして ECS コンソール にリダイレクトします。左側のナビゲーションウィンドウで、 をクリックします。
すべてのセキュリティグルーパールールをチェックして、VPC から TCP ポート 10250 へのインバウンドアクセスが開かれていることを確認します。そうでない場合は、セキュリティグルーパールールを追加する を参照して、対応するルールを追加します。
上記に当てはまらない場合は、チケットを送信 してサポートを受けてください。
現在のアカウントには操作を実行するために必要な RBAC 権限がなく、ForbiddenQueryClusterNamespace または APISERVER.403 エラーコードが返される
問題
ACK コンソールにアクセスすると、システムから「現在のアカウントには操作を実行するために必要な RBAC 権限がありません」というエラーメッセージが返されます。エラーコードは ForbiddenQueryClusterNamespace または APISERVER.403 です。
原因
使用しているアカウントに、操作を実行するために必要な RBAC 権限がありません。
解決策
Alibaba Cloud アカウントまたは管理者権限を持つアカウントを使用して、ACK コンソール にログインします。左側のナビゲーションウィンドウで、[認証] をクリックします。
RAM ユーザー タブで、エラーの原因となっている Resource Access Management (RAM) ユーザーを見つけ、RAM ユーザーの アクセス権限の管理 をクリックします。
[権限管理] パネルで、ロール権限の追加 をクリックし、クラスタ、名前空間、および定義済みの RBAC ロールを選択して、[送信] をクリックします。
現在のアカウントには操作を実行するために必要な RAM 権限がなく、StatusForbidden エラーコードが返される
問題
ACK コンソールにアクセスすると、システムから「現在のアカウントには操作を実行するために必要な RAM 権限がありません」というエラーメッセージが返されます。エラーコードは StatusForbidden です。
原因
使用しているアカウントに、操作を実行するために必要な RAM 権限がありません。
解決策
Alibaba Cloud アカウントまたは RAM 権限を持つアカウントを使用して、RAM コンソール にログインします。
システムによって返される CS 情報 ( [cs:DescribeKubernetesVersionMetadata] など) に基づいて、アカウントに必要な権限を付与します。詳細については、カスタム RAM ポリシーを作成する を参照してください。