このトピックでは、Container Compute Service (ACS) コンソールを使用してクラスターにアクセスする際に発生する例外とその原因について説明します。また、これらの例外に対する解決策も提供します。このトピックは、クラスターリソースへのアクセス時に API サーバーリクエストの例外が発生した場合、Pod のログへのアクセス時に API サーバーリクエストの例外が発生した場合、現在のアカウントに操作を実行するために必要なロールベースのアクセス制御(RBAC)権限がない場合、および現在のアカウントに操作を実行するために必要な RAM 権限がない場合の例外の解決に役立ちます。
API サーバーリクエストの例外がクラスターリソースへのアクセス時に発生する
問題
ACS コンソールを使用してクラスターリソースにアクセスすると、システムから「現在のクラスターの API サーバーへのリクエストの処理中にエラーが発生しました」というエラーメッセージが返されます。エラーコードは ErrorQueryClusterNamespace
または APIServer.500
です。
原因
API サーバーの負荷分散構成が無効であるか、API サーバーの状態が異常です。その結果、ACS コントロールプレーンは API サーバーに接続できません。
解決策
ACS コンソール にログインします。左側のナビゲーションペインで、クラスター をクリックします。
クラスター ページで、管理するクラスターをクリックします。
クラスターの詳細ページで、クラスターリソース タブをクリックし、API サーバー SLB の右側にあるハイパーリンクをクリックして、Server Load Balancer (SLB) コンソール にログインします。
システムに 指定された SLB ID は存在しません。 というメッセージが表示された場合は、API サーバーの SLB インスタンスが削除または解放されています。 SLB インスタンスを復元することはできません。この問題を解決するには、クラスターを再作成する必要があります。詳細については、ACS クラスターの作成 を参照してください。
上記のメッセージが表示されない場合は、次の手順に進みます。
SLB インスタンスの ステータス 列に 実行中 と表示されているかどうかを確認します。
SLB インスタンスが実行中状態ではない場合、SLB インスタンスは一時停止またはロックされている可能性があります。従量課金制の SLB インスタンスは、期限切れになると一時停止されます。サブスクリプション SLB インスタンスは、サブスクリプションの期限が切れるとロックされます。延滞料金を支払うか、サブスクリプションを更新してから、SLB インスタンスを再起動する必要があります。SLB インスタンスの延滞料金の詳細については、延滞料金 を参照してください。
SLB インスタンスが実行中状態の場合は、次の手順に進みます。
SLB インスタンスに、フロントエンドプロトコル/ポートとバックエンドプロトコル/ポートの設定が TCP:6443 に設定されているリスナーがあるかどうか、およびリスナーの ステータス 列に 実行中 と表示されているかどうかを確認します。
上記のリスナーが存在しない場合、API サーバーのリスナーの構成が変更されています。
上記のリスナーが存在するが、リスナーが 停止 状態の場合は、リスナーを選択して 開始 をクリックします。
上記のリスナーが存在しない場合は、チケットを提出 してください。
上記のリスナーが存在し、正常に動作している場合は、次の手順に進みます。
リスナーの ヘルスチェックステータス 列に 正常 と表示されているかどうかを確認します。
ヘルスチェックステータスが正常でない場合、API サーバーの SLB インスタンスのバックエンドサーバーが異常です。チケットを提出 してください。
リスナーのヘルスチェックステータスが正常の場合は、次の手順に進みます。
上記のリスナーでアクセス制御が有効になっているかどうかを確認します。
リスナーでアクセス制御が有効になっている場合、これはリスナーのホワイトリストが正しく構成されていないことを示しています。この問題を解決するには、CIDR ブロック
100.104.0.0/16
をホワイトリストに追加します。CIDR ブロックは、ACS コントロールプレーンから API サーバーに送信される内部リクエストの送信元 IP アドレスを指定します。アクセス制御の詳細については、アクセス制御 を参照してください。リスナーでアクセス制御が無効になっている場合は、次の手順に進みます。
上記の理由で例外が発生していない場合は、チケットを提出 してください。
Pod のログへのアクセス時に API サーバーリクエストの例外が発生する
Pod のログにアクセスするときにこの例外が発生したが、他のクラスターリソースには正常にアクセスできる場合は、次の操作を実行して問題をトラブルシューティングします。
Pod のステータスが 実行中 であるかどうかを確認します。Pod が実行中状態ではない場合は、Pod のトラブルシューティング を参照してください。
すべてのセキュリティグループルールを確認し、VPC から TCP ポート 10250 への受信トラフィックが許可されていることを確認します。受信トラフィックが拒否されている場合は、セキュリティグループルールを追加して受信トラフィックを許可します。詳細については、セキュリティグループルールの追加 を参照してください。
上記の理由で例外が発生していない場合は、チケットを提出 してください。
現在のアカウントに操作を実行するために必要な RBAC 権限がありません
問題
ACS コンソールにアクセスすると、システムから「現在のアカウントに操作を実行するために必要な RBAC 権限がありません」というエラーメッセージが返されます。エラーコードは ForbiddenQueryClusterNamespace
または APISERVER.403
です。
原因
使用しているアカウントに、操作を実行するために必要な RBAC 権限がありません。
解決策
Alibaba Cloud アカウントまたは管理者権限を持つアカウントを使用して、ACS コンソール にログインします。左側のナビゲーションペインで、認証 をクリックします。
RAM ユーザー タブで、エラーの原因となっている Resource Access Management (RAM) ユーザーを見つけ、RAM ユーザーの アクセス権限の管理 をクリックします。
権限管理 ページで、ロール権限の追加 をクリックし、クラスター、名前空間、および定義済みの RBAC ロールを選択してから、送信 をクリックします。
現在のアカウントに操作を実行するために必要な RAM 権限がありません
問題
ACS コンソールにアクセスすると、システムから「現在のアカウントに操作を実行するために必要な RAM 権限がありません」というエラーメッセージが返されます。エラーコードは StatusForbidden
です。
原因
使用しているアカウントに、操作を実行するために必要な RAM 権限がありません。
解決策
Alibaba Cloud アカウントまたは RAM 権限を持つアカウントを使用して、RAM コンソール にログインします。
システムから返された CS 情報(cs:DescribeKubernetesVersionMetadata など)に基づいて、アカウントに必要な権限を付与します。詳細については、カスタム RAM ポリシーの作成 を参照してください。