Alibaba Cloud Container Compute Service (ACS)は、Container Intelligence Service (CIS)が提供する定期検査機能をサポートしています。検査ルールを設定して、クラスタを定期的に検査し、潜在的なリスクを特定できます。このトピックでは、クラスタ検査機能によって生成される一般的な問題のアラートと、これらの問題の解決策について説明します。
チェック項目とアラート
クラスタ検査機能の使用方法の詳細については、クラスタ検査機能の操作を参照してください。
チェック項目は、クラスタの構成によって異なる場合があります。検査レポートのチェック項目が優先されます。
チェック項目 | 検査項目 | アラート |
リソースクォータ ResourceQuotas | ||
SLB バックエンドサーバーのクォータ | ||
SLB リスナーのクォータ | ||
リソースウォーターマーク ResourceLevel | SLB 帯域幅の使用率 | |
SLB 接続数 | ||
バージョンと証明書 Versions&Certificates | クラスタの Kubernetes バージョン | |
クラスタリスク ClusterRisk | SLB インスタンスが API サーバーに関連付けられているかどうか | |
API サーバーに関連付けられている SLB インスタンスのステータス | ||
API サーバーに関連付けられている SLB インスタンスのポート 6443 でリッスンするリスナーの構成 | API サーバーに関連付けられている SLB インスタンスのポート 6443 でリッスンするリスナーの構成にエラーがあります | |
API サーバーに関連付けられている SLB インスタンスのアクセス制御構成 | ||
DNS サービスのクラスタ IP アドレス | ||
DNS サービスのエンドポイント | ||
1 つの SLB ポートが複数のサービスで共有されているかどうか |
VPC の SLB インスタンスのクォータが不足しています
アラートの説明:クラスタ VPC で作成できる SLB インスタンスの数が 5 未満です。ACK クラスタの各 LoadBalancer サービスは 1 つの SLB インスタンスを占有します。クォータが使い果たされると、新しく作成した LoadBalancer サービスは期待どおりに機能しません。
解決策:デフォルトでは、各 Alibaba Cloud アカウント内に最大 60 個の SLB インスタンスを持つことができます。クォータを増やすには、Quota Centerコンソールにログインしてアプリケーションを送信してください。詳細については、クォータを参照してください。
SLB バックエンドサーバーのクォータが不足しています
アラートの説明:SLB インスタンスに関連付けることができる ECS インスタンス数のクォータが不足しています。多数の LoadBalancer サービスを作成する場合、バックエンドポッドは複数の ECS インスタンスに分散されます。SLB インスタンスに関連付けることができる ECS インスタンスのクォータが使い果たされると、ECS インスタンスを SLB インスタンスに関連付けることができなくなります。
解決策:デフォルトでは、最大 200 台のバックエンドサーバーを SLB インスタンスに関連付けることができます。クォータを増やすには、Quota Centerコンソールにログインしてアプリケーションを送信してください。詳細については、クォータを参照してください。
SLB リスナーのクォータが不足しています
アラートの説明:SLB インスタンスに追加できるリスナー数のクォータが不足しています。LoadBalancer サービスは特定のポートでリッスンします。各ポートは SLB リスナーに対応しています。LoadBalancer サービスがリッスンするポート数がクォータを超えると、リスナーによって監視されていないポートは期待どおりにサービスを提供できません。
解決策:デフォルトでは、SLB インスタンスに最大 50 個のリスナーを追加できます。クォータを増やすには、Quota Centerコンソールにログインしてアプリケーションを送信してください。詳細については、クォータを参照してください。
SLB インスタンスのクォータが不足しています
アラートの説明: 作成できる SLB インスタンスの数が 5 未満です。LoadBalancer サービスごとに SLB インスタンスが作成されます。SLB インスタンスのクォータが使い果たされると、新しく作成された LoadBalancer サービスは期待どおりに動作しません。
解決策: デフォルトでは、各 Alibaba Cloud アカウント内に最大 60 個の SLB インスタンスを持つことができます。クォータを増やすには、クォータセンターコンソールで申請を送信してください。
SLB 帯域幅の使用率が高すぎます
アラートの説明:過去 3 日間の最大送信帯域幅が、帯域幅制限の 80% を超えています。SLB インスタンスの帯域幅リソースが使い果たされると、SLB インスタンスがパケットをドロップする可能性があります。これにより、ネットワークのジッターが発生したり、応答レイテンシが増加したりします。
解決策:SLB インスタンスの帯域幅の使用率が高すぎる場合は、SLB インスタンスをアップグレードしてください。詳細については、既存の SLB インスタンスを使用するを参照してください。
SLB 接続数が多すぎます
アラートの説明:過去 3 日間の SLB 接続のピーク値が、上限の 80% を超えています。SLB 接続数が上限に達すると、クライアントは SLB インスタンスへの接続を確立できません。
解決策:SLB インスタンスに確立された接続数が過度に多く、過去 3 日間で上限の 80% を超えている場合は、サービスの中断を避けるために SLB インスタンスをアップグレードしてください。詳細については、既存の SLB インスタンスを使用するを参照してください。
新規 SLB 接続レートが高すぎます
アラートの説明:過去 3 日間における新規 SLB 接続の最高レートが、上限の 80% を超えています。レートが上限に達すると、クライアントは短期間で SLB インスタンスへの新しい接続を確立できません。
解決策:新規 SLB 接続レートが過度に高く、上限の 80% を超えている場合は、サービスの中断を避けるために SLB インスタンスをアップグレードしてください。詳細については、既存の SLB インスタンスを使用するを参照してください。
SLB QPS が高すぎます
アラートの説明:過去 3 日間の SLB インスタンスの最高 QPS 値が、上限の 80% を超えています。QPS 値が上限に達すると、クライアントは SLB インスタンスに接続できません。
解決策:SLB インスタンスの QPS 値が過度に高く、上限の 80% を超えている場合は、サービスの中断を避けるために SLB インスタンスをアップグレードしてください。詳細については、既存の SLB インスタンスを使用するを参照してください。
新規 SLB 接続レートチェック
アラートの説明: 過去 3 日間における新規 SLB 接続の最高レートが、上限の 80% を超えているかどうかを確認します。レートが上限に達すると、クライアントは短期間で SLB インスタンスへの新しい接続を確立できません。
解決策: 新規 SLB 接続レートが過度に高い場合は、サービスの中断を避けるために SLB インスタンスをアップグレードしてください。詳細については、既存の SLB インスタンスを使用するを参照してください。
API サーバーに関連付けられている SLB インスタンスがない
アラートの説明: クラスタ内に API サーバーに関連付けられている SLB インスタンスが存在するかどうかを確認します。SLB インスタンスが存在せず、1 つの API サーバーのみが実行されている場合、API サーバーは単一障害点 (SPOF) になります。この API サーバーに障害が発生すると、クラスタに障害が発生します。
解決策: SLB インスタンスを API サーバーに関連付けます。
API サーバーに関連付けられている SLB インスタンスのステータスが異常です
アラートの説明: ポッドのスケジューリング、サービスのデプロイ、スケールアウトなど、すべてのクラスタ操作が中断または遅延されます。クラスタのサービス検出メカニズムは API サーバーに依存しています。SLB インスタンスが異常な場合、サービス検出に失敗する可能性があります。
解決策: バックエンドサーバー、リスニングポート、ヘルスチェックの構成を含め、SLB インスタンスの構成が正しいかどうかを確認します。
API サーバーに関連付けられている SLB インスタンスのポート 6443 でリッスンするリスナーの構成にエラーがあります
アラートの説明: API サーバーに関連付けられている SLB インスタンスのポート 6443 でリッスンするリスナーの構成にエラーがあります。kubectl 操作、ダッシュボードアクセス、他のサービスからの API リクエストなど、SLB を介して API サーバーにアクセスするすべてのリクエストが失敗します。解決リクエストも API サーバーに依存するため、クラスタ内のサービスがサービス名で他のサービスを解決できない場合があります。
解決策: バックエンドサーバー、リスニングポート、ヘルスチェックの構成を含め、SLB インスタンスの構成が正しいかどうかを確認します。ポート 6443 でリッスンする HTTPS リスナーが構成されていることを確認します。
API サーバーに関連付けられている SLB インスタンスのアクセス制御構成にエラーがあります
アラートの説明: API サーバーに関連付けられている SLB インスタンスのアクセス制御構成にエラーがあります。ノード管理、ポッドスケジューリング、サービスデプロイなどのクラスタ管理操作が中断または制限されます。クラスタ内のサービスは、通信とサービス検出のために API サーバーに依存しています。アクセス制御の例外により、API サーバーに依存するリクエストが失敗します。
解決策: セキュリティグループやアクセス制御リスト (ACL) など、SLB インスタンスのアクセス制御構成を確認します。有効な IP アドレスとポート (特にポート 6443) が API サーバーへのアクセスを許可されていることを確認します。SLB インスタンスと API サーバーの TLS/SSL 構成が正しく、証明書が有効であることを確認します。
DNS サービスのクラスタ IP アドレスが異常です
アラートの説明: DNS サービスのクラスタ IP アドレスが割り当てられているかどうかを確認します。異常な DNS サービスは、クラスタ機能の例外を引き起こし、ビジネスにさらに影響を与える可能性があります。
解決策: Kubernetes クラスタのネットワークプラグインと構成に競合やエラーがないか確認します。CoreDNS
などの DNS サービスを再デプロイして、サービスが正しく構成され、クラスタ IP アドレスが割り当てられていることを確認します。
DNS サービスで使用可能なバックエンドサーバーがありません
アラートの説明: クラスタ内の DNS サービスに関連付けられているバックエンドサーバーの数を確認します。数が 0 の場合、DNS サービスは使用できません。
解決策: Corefile が正しく構成されているかどうかを確認します。forward
または proxy
コマンドが有効なバックエンド DNS サーバーのセットを指していることを確認します。
SLB QPS チェック
アラートの説明: 過去 3 日間の SLB インスタンスの最高 QPS 値が、上限の 80% を超えているかどうかを確認します。QPS 値が上限に達すると、クライアントは SLB インスタンスに接続できません。
解決策: SLB インスタンスの QPS 値が過度に高い場合は、サービスの中断を避けるために SLB インスタンスをアップグレードしてください。詳細については、既存の SLB インスタンスを使用するを参照してください。
クラスタの Kubernetes バージョンが古くなっています
アラートの説明:クラスタの Kubernetes バージョンが古いか、まもなく古くなります。
解決策:クラスタで古い Kubernetes メジャーバージョンを実行している場合は、できるだけ早くクラスタを更新してください。
1 つの SLB ポートが複数のサービスで共有されています
アラートの説明: SLB インスタンスのポートが複数のサービスで共有されています。これにより、サービス例外が発生します。
解決策: 同じ SLB ポートを共有している競合するサービスを削除または変更します。同じ SLB インスタンスを共有する場合は、異なるポートを使用するようにしてください。