すべてのプロダクト
Search
ドキュメントセンター

Container Service for Kubernetes:クラスターチェックと修復

最終更新日:Jun 22, 2026

Container Service for Kubernetes (ACK) は、クラスターアップグレード、クラスター移行、コンポーネント、およびノードプール用のクラスターチェック機能を提供します。これらの操作を実行する前にチェックを行うことで、クラスターが要件を満たしているかを確認し、失敗したチェック項目に対する推奨される修正を取得できます。

クラスターチェック

クラスターアップグレードチェック

Kubernetes は複雑であるため、クラスターのアップグレードには大きなリスクが伴います。アップグレードをスムーズに行うために、ACK は一連のアップグレード前チェックを実行します。クラスターがすべてのチェックに合格した後にのみ、アップグレードできます。特定のチェック項目は、クラスターのタイプ、Kubernetes バージョン、およびコンテナランタイムによって異なります。お使いのクラスターの最終的なチェックリストについては、ACK コンソールをご参照ください。

クラスターアップグレードチェックには、3 つのカテゴリがあります。

  • クラスターリソース:SLB、ECS、VPC など、ACK クラスターに関連付けられているクラウドリソースをチェックします。

  • クラスターコンポーネント:コンポーネントのバージョンが要件を満たしているか、アプリケーションが非推奨 API を使用しているかなど、ACK クラスター、そのコンポーネント、およびアプリケーションの設定をチェックします。

  • クラスター設定:ACK クラスター内のノードの設定をチェックします。このチェックでは、ノード上に Pod を作成して情報を収集します。

カテゴリ

チェック項目

説明

クラスターリソース

API サーバー SLB

SLB インスタンスが存在することを確認します。

SLB インスタンスが正常であることを確認します。

SLB リスナーが正しく設定されていることを確認します。

SLB インスタンスのバックエンドサーバーグループが正しく設定されていることを確認します。

SLB のアクセスコントロール設定が正しいことを確認します。アクセスコントロールが設定されていない場合、このチェックは合格します。

VPC

VPC インスタンスが存在することを確認します。

VPC インスタンスが正常であることを確認します。

vSwitch

vSwitch が存在することを確認します。

vSwitch が正常であることを確認します。

vSwitch に少なくとも 2 つの利用可能な IP アドレスがあることを確認します。

ECS

ECS インスタンスが存在することを確認します。

ECS インスタンスが正常であることを確認します。

ECS セキュリティグループが正常であることを確認します。

ECS のサービス期間が有効であることを確認します。

ECS インスタンスタイプが要件を満たしていることを確認します。

Cloud Assistant クライアントが正常であることを確認します。

クラスターコンポーネント

Kube Proxy マスター

コンポーネントが存在することを確認します。

Kube Proxy ワーカー

コンポーネントが存在することを確認します。

APIService

利用できない APIService がないかチェックします。

クラスターインスタンス

クラスターに 3 つまたは 5 つのマスターノードがあることを確認します。

クラスターコンポーネント

Terway コンポーネントのバージョンが要件を満たしていることを確認します。

CoreDNS コンポーネントのバージョンが要件を満たしていることを確認します。

cloud-controller-manager コンポーネントのバージョンが要件を満たしていることを確認します。

Nginx Ingress Controller コンポーネントのバージョンが要件を満たしていることを確認します。

ACK Virtual Node コンポーネントのバージョンが要件を満たしていることを確認します。

Metrics Server コンポーネントのバージョンが要件を満たしていることを確認します。

ノード

ノードに IP アドレスがあることを確認します。

ノードがスケジュール可能であることを確認します。

ノードが Ready 状態であることを確認します。

ノードのオペレーティングシステムがアップグレードをサポートしていることを確認します。

ノードに 2 つを超える利用可能な Pod があることを確認します。

非推奨 API

クラスターでの非推奨 API の使用状況をチェックします。

クラスター設定

iptables 設定

iptables の設定が正しいことを確認します。

オペレーティングシステム

オペレーティングシステムがアップグレードをサポートしていることを確認します。

yum

yum が正しく動作することを確認します。

ディスク

ノードのファイルシステムが正常であることを確認します。

ノードに 5% を超える空きディスク容量があることを確認します。

Swap

ノードで Swap が有効になっているかどうかをチェックします。

NTP

ノードで NTP が正しく機能していることを確認します。

Systemd

Systemd のバージョンが systemd-219-67 より後であることを確認します。

kubelet

kubelet の設定が想定される設定と一致することを確認します。

コンテナランタイム

Docker または containerd ランタイムが正常であることを確認します。

カーネル設定

ノードのカーネル設定が正しいことを確認します。

マニフェスト設定

マニフェストファイルが想定される設定と一致することを確認します。

クラスター移行チェック

クラスター移行の前に、ACK は移行前チェックを実行します。移行を続行するには、すべてのチェックに合格する必要があります。以下のシナリオが対象です:

  • ACK 専用クラスターから ACK Pro マネージドクラスターへの移行。

  • ベーシックな ACK マネージドクラスターから ACK Pro マネージドクラスターへの移行。

クラスター移行チェックには、以下の 4 つのカテゴリがあります:

  • クラスターリソース: SLB、ECS、VPC など、ACK クラスターに関連付けられているクラウドリソースをチェックします。

  • クラスターコンポーネント: 利用できない API サービスが存在するかどうかなど、ACK クラスターのコンポーネント設定をチェックします。

  • クラスター設定: ACK クラスター内のノードの設定をチェックします。このチェックでは、ノード上に Pod を作成して情報を収集します。

  • コンポーネント使用状況: ACK 専用クラスターを移行すると、一部のコンポーネントは ACK の管理対象に移行します。このチェックでは、移行前にこれらのコンポーネントが正常であることを確認します。

カテゴリ

チェック項目

説明

クラスターリソース

API Server SLB

SLB インスタンスが存在することを確認します。

SLB インスタンスが正常であることを確認します。

SLB リスナーが正しく設定されていることを確認します。

SLB インスタンスのバックエンドサーバーグループが正しく設定されていることを確認します。

SLB のアクセス制御設定が正しいことを確認します。アクセス制御が設定されていない場合、このチェックは合格します。

VPC

VPC インスタンスが存在することを確認します。

VPC インスタンスが正常であることを確認します。

vSwitch

vSwitch が存在することを確認します。

vSwitch が正常であることを確認します。

vSwitch に少なくとも 2 つの利用可能な IP アドレスがあることを確認します。

ECS

ECS インスタンスが存在することを確認します。

ECS インスタンスが正常であることを確認します。

ECS セキュリティグループが正常であることを確認します。

Cloud Assistant クライアントが正常であることを確認します。

クラスターコンポーネント

Kube Proxy マスター

コンポーネントが存在することを確認します。

Kube Proxy ワーカー

コンポーネントが存在することを確認します。

API Service

利用できない API サービスがないかチェックします。

クラスターインスタンス

クラスターに 3 つまたは 5 つのマスターノードがあることを確認します。

ノード

ノードに IP アドレスがあることを確認します。

ノードがスケジューリング可能であることを確認します。

ノードが Ready 状態であることを確認します。

ノードのオペレーティングシステムがアップグレードをサポートしていることを確認します。

ノードに 3 つ以上の利用可能な Pod があることを確認します。

クラスター設定

オペレーティングシステム

オペレーティングシステムがアップグレードをサポートしていることを確認します。

yum

yum が正しく動作することを確認します。

コンポーネント使用状況

cloud-controller-manager

cloud-controller-manager コンポーネントが正常であることを確認します。

コンポーネントチェック

コンポーネントチェックは、コンポーネントのアップグレード時に適用されます。コンポーネントをアップグレードする前に、Container Service for Kubernetes (ACK) はアップグレード前チェックを実行します。アップグレードは、コンポーネントがすべてのチェックに合格した後にのみ実行できます。

カテゴリー

チェック項目

説明

cloud-controller-manager

Addon_CCM

このコンポーネントのアップグレードが SLB に影響を与えるかチェックします。

Component_Block_Version

CCM バージョンがアップグレード可能であることを確認します。

csi-plugin

DaemonSet_Annotation

DaemonSet のアノテーションが想定される設定と一致していることを確認します。

Csi_Driver_Attributes

CSI ドライバーの属性が要件を満たしていることを確認します。

Node_Status_Ready

クラスターノードが Ready 状態であることを確認します。

csi-provisioner

Stateful_Set_Exist

コンポーネントが StatefulSet としてデプロイされていることを確認します。

Deployment_Annotation

Deployment のアノテーションが想定される設定と一致していることを確認します。

Storage_Class_Attributes

StorageClass の属性が要件を満たしていることを確認します。

Csi_Provisioner_Node_Count

Ready 状態のノードが少なくとも 2 つあることを確認します。

terway-eniip

Systemd

ノード上の Systemd のバージョンが systemd-219-67 より新しいことを確認します。

nginx-ingress-controller

Deployment_Healthy

Nginx Ingress コントローラーの Deployment が正常であることを確認します。

Deployment_Not_Under_HPA

Deployment に HorizontalPodAutoscaler (HPA) が設定されているかチェックします。

Deployment_Not_Modified

Deployment が変更されているかチェックします。

Nginx_Ingress_Pod_Error_Log

Nginx にエラーログがないかチェックします。

LoadBalancer_Service_Healthy

Nginx Service が正常であることを確認します。

Nginx_Ingress_Configuration

互換性のない Ingress 設定がないかチェックします。

aliyun-acr-credential-helper

RamRole_Exist

コンポーネントに AliyunCSManagedAcrRole が付与されていることを確認します。

ack-cost-exporter

RamRole_Exist

コンポーネントに AliyunCSManagedCostRole が付与されていることを確認します。

ノードプールチェック

ノードプールチェックは、ノードプールのアップグレード時に適用されます。ノードプールをアップグレードすると、ACK はアップグレード前チェックを実行します。すべてのチェックに合格した後にのみ、ノードプールをアップグレードできます。

ノードプールチェックには 3 つのカテゴリがあります:

  • クラスターリソース:SLB や VPC など、ACK クラスターに関連付けられているクラウドリソースをチェックします。

  • クラスターコンポーネント:ACK クラスター、ノード、およびアプリケーションの設定をチェックします。

  • クラスター構成:ACK クラスター内のノードの構成をチェックします。このチェックでは、ノード上に Pod を作成して情報を収集します。

カテゴリ

チェック項目

説明

クラスターリソース

API サーバー SLB

SLB インスタンスが存在することを確認します。

SLB インスタンスが正常であることを確認します。

SLB リスナーが正しく設定されていることを確認します。

SLB インスタンスのバックエンドサーバーグループが正しく設定されていることを確認します。

SLB のアクセス制御設定が正しいことを確認します。アクセス制御が設定されていない場合、このチェックは合格します。

VPC

VPC インスタンスが存在することを確認します。

VPC インスタンスが正常であることを確認します。

vSwitch

vSwitch が存在することを確認します。

vSwitch が正常であることを確認します。

vSwitch に少なくとも 2 つの利用可能な IP アドレスがあることを確認します。

クラスターコンポーネント

API Service

利用できない API サービスがないかチェックします。

クラスターインスタンス

クラスターに 3 または 5 つのマスターノードがあることを確認します。

ノード

ノードが Ready 状態であることを確認します。

ノードに 3 つ以上の利用可能な Pod があることを確認します。

HostPath

ノード上のいずれかの Pod が HostPath ボリュームを使用しているかどうかをチェックします。

クラスター構成

iptables 構成

iptables の構成が正しいことを確認します。

オペレーティングシステム

オペレーティングシステムがアップグレードをサポートしていることを確認します。

yum

yum が正しく動作することを確認します。

ディスク

ノードのファイルシステムが正常であることを確認します。

ノードの残りのディスク容量

ノードに 5% を超える空きディスク容量があることを確認します。

Swap

ノードで Swap が有効になっているかどうかをチェックします。

NTP

ノードで NTP が正しく機能していることを確認します。

Systemd

Systemd のバージョンが systemd-219-67 より新しいことを確認します。

kubelet

kubelet の構成が期待される設定と一致することを確認します。

コンテナランタイム

Docker または containerd ランタイムが正常であることを確認します。

カーネル構成

ノードのカーネル構成が正しいことを確認します。

マニフェスト構成

マニフェストファイルが期待される設定と一致することを確認します。

チェック失敗時のソリューション

失敗したチェック

ソリューション

systemd のバージョンが低すぎます

systemd のバージョンをアップグレードします

コンポーネントのバージョンが低すぎます

コンポーネントのバージョンをアップグレードします。詳細については、「コンポーネントの管理」をご参照ください。

yum チェックがタイムアウトしました

次のコマンドを実行して、yum のタイムアウトを確認します。デフォルトのタイムアウトは 10 秒です。

time if type yum&>/dev/null; then yum list yum; fi

API サービスが利用できません

  1. 次のコマンドを実行して、利用できない API サービスを特定します。

    kubectl -n kube-system get apiservices |grep -i false
  2. 利用できない API サービスの目的を確認します。サービスが不要な場合は、次のコマンドを実行して削除します。

    重要

    必要な API サービスを削除すると、クラスターが誤動作する可能性があります。利用できない API サービスの目的が不明な場合は、テクニカルサポートにお問い合わせください。

    kubectl -n kube-system delete apiservices ${your-abnormal-apiservice-name}

ノードに、HostPath を使用する Pod が含まれています

システムディスクを交換してノードをアップグレードすると、HostPath を使用してホストディレクトリをマウントする Pod でデータ損失が発生する可能性があります。影響を受ける各 Pod のマウントされたディレクトリを確認してください。影響がない場合は、アップグレードを続行できます。このチェックは情報提供のみを目的としており、アップグレードをブロックしません。

クラスターが非推奨 API を使用しています

非推奨 API のソースを特定し、適切な対応を行います。詳細については、「非推奨 API」をご参照ください。

非推奨 API

Kubernetes 1.20 以降を実行するクラスターでアップグレード前チェックを実行すると、非推奨 API の使用が検出されます。チェック結果には、これらの API が一覧表示されます。

たとえば、クラスターを Kubernetes 1.20 から Kubernetes 1.22 にアップグレードすると、システムは前日の監査ログをスキャンして、非推奨 API の使用を検出します。

  • クラスターが非推奨 API を使用している場合、チェック結果は通知のみであり、アップグレードはブロックされません。

  • Kubernetes 1.22 で非推奨 API を引き続き使用すると、セキュリティリスクが生じる可能性があります。業務への影響を評価する必要があります。

非推奨 API は、リクエスト元 (ユーザーエージェント) に基づいて、次の 4 つのタイプに分類されます。クラスターをアップグレードする前に、次の表の [カテゴリ]に基づいて各非推奨 API のソースを特定し、推奨アクションを実行してください。

タイプ

推奨アクション

core

Kubernetes のコアコンポーネント:Container Service for Kubernetes (ACK) はクラスターのアップグレード中にこれらのコンポーネントを自動的にアップグレードします。これらはチェックページに表示されず、アクションは不要です。

kube-apiserverkube-schedulerkube-controller-manager

ack

ACK コンポーネント:これらのコンポーネントは ACK によって提供されます。非推奨 API の使用が検出された場合、アドオンページでこれらのコンポーネントをアップグレードするよう案内が表示されます。

説明
  • ACKコンソールで、操作 > アドオン管理 に移動してコンポーネントをアップグレードします。非推奨 API の情報は、コンポーネントをアップグレードした翌日に非表示になります。

  • 場合によっては、CoreDNS コンポーネントがバージョン 1.24 以降の Kubernetes クラスターで非推奨 API を使用することがあります。チェック結果に coredns が含まれている場合は、「CoreDNS が非推奨 API を使用しているのはなぜですか?」の手順をご参照ください。

  • 非推奨 API の情報は通知のみであり、アップグレードには影響しません。アップグレード後、システムは非推奨 API リソースを新しいものに置き換えます。セキュリティリスクを回避するために、非推奨 API を使用してリソースを作成しないことを推奨します。

metrics-server、nginx-ingress-controller、CoreDNS

opensource

オープンソースコンポーネント:このタイプには、オープンソースコミュニティのコンポーネントが含まれます。要件に基づいてアップグレードするかどうかを決定してください。

説明

非推奨 API の通知は参考情報であり、アップグレードには影響しません。機能に影響を与えないように、要件に基づいてコンポーネントをアップグレードしてください。

rancher、elasticsearch-operator など

unknown

不明なソース:上記のタイプに一致しないソースは不明としてマークされます。コンポーネントをアップグレードするかどうかを決定し、自分でアップグレードを実行する必要があります。

説明

非推奨 API の通知は参考情報であり、アップグレードには影響しません。機能に影響を与えないように、要件に基づいてコンポーネントをアップグレードしてください。

kubectl、agent、Go-http-client、okhttp

非推奨 API 情報を表示するには:

  1. クラスターのアップグレード ページで 事前チェック をクリックし、次に 詳細情報 をクリックします。

  2. [レポート] ページで、[詳細の表示] をクリックします。

  3. 詳細ページには、非推奨 API、ユーザーエージェント、タイプ、非推奨となった Kubernetes バージョン、最終アクセス時刻、および送信元 IP アドレスが表示されます。

[レポート] ページには、[クラスターリソース][クラスターコンポーネント]、および [ノード構成] の 3 つのタブがあります。[ノード構成] タブには、「クラスターはまだ非推奨の Kubernetes API を使用しています。」という警告が表示されます。