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

Container Service for Kubernetes:クラスタ確認項目と解決策

最終更新日:Mar 26, 2026

Container Service for Kubernetes (ACK) では、クラスタのアップグレード、クラスタの移行、およびコンポーネントのアップグレードを実行する前に、自動で事前チェックが実行されます。すべてのチェックに合格した場合にのみ、操作が続行されます。本トピックでは、各チェック項目の検証内容および失敗時の対処方法について説明します。

確認タイプ

ACK では、以下の 3 種類の事前チェックが実行されます。

確認タイプ実行タイミング対象
クラスタアップグレード確認クラスタアップグレード前すべてのクラスタタイプ
クラスタ移行確認クラスタ移行前ACK Serverless Basic Edition から ACK Serverless Pro への移行
コンポーネント確認コンポーネントアップグレード前個別のコンポーネント

クラスタアップグレード確認

クラスタアップグレードを開始する前に、ACK は事前アップグレード確認を実行し、非推奨 API、コンポーネントのバージョン制約、ランタイムの変更などによって引き起こされる問題を検出します。すべてのチェックに合格した場合にのみ、アップグレードが続行されます。

この確認は、以下の 2 つのカテゴリに分類されます。

  • クラスタリソース:ACK Serverless クラスタで使用されるクラウドリソース(例:Server Load Balancer (SLB) インスタンス、Virtual Private Cloud (VPC) ネットワーク)。

  • クラスタコンポーネント:コンポーネントの構成、アプリケーション設定、および非推奨 API の使用状況。

確認項目は、クラスタのタイプ、バージョン、ランタイムに応じて異なります。以下に示す表は参考用です。確定的な情報源は、ACK コンソール内の確認ページです。

クラスタリソース

確認項目検証内容
APIServer SLBSLB インスタンスが存在すること
SLB インスタンスのステータスが「正常」であること
SLB リスナーの構成(ポートおよびプロトコル)が有効であること
SLB バックエンドサーバーグループの構成が有効であること
SLB のアクセスの制御構成が正しいこと(アクセスの制御が未設定の場合も合格とみなされます)
VPCVPC タイプのインスタンスが存在すること
VPC タイプのインスタンスのステータスが「正常」であること
vSwitchvSwitch が存在すること
vSwitch のステータスが「正常」であること
vSwitch に利用可能な IP アドレスが 2 つ以上あること

クラスタコンポーネント

確認項目検証内容
Kube Proxy Masterコンポーネントが存在すること
Kube Proxy Workerコンポーネントが存在すること
APIService利用不可な APIService が存在しないこと
コンポーネントバージョンTerway、CoreDNS、cloud-controller-manager (CCM)、Nginx Ingress Controller、Metric Server の各バージョンが、アップグレード要件を満たしていること
非推奨 APIクラスタで非推奨 API を使用していないこと

クラスタ構成

確認項目検証内容
iptablesiptables 構成が有効であること
オペレーティングシステムOS がアップグレードをサポートしていること
yumyum パッケージマネージャが正常に動作していること
kubeletkubelet 構成が期待通りであること
コンテナランタイムDocker または containerd のランタイムステータスが「正常」であること
マニフェストマニフェストファイルが期待通りであること

クラスタ移行確認

ACK Serverless Basic Edition クラスタを ACK Serverless Pro に移行する前に、事前移行確認が実行されます。すべてのチェックに合格した場合にのみ、移行が続行されます。

この確認は、以下の 2 つのカテゴリに分類されます。

  • クラスタリソース:ACK Serverless クラスタで使用される SLB インスタンスおよび VPC ネットワーク。

  • クラスタコンポーネント:コンポーネントの構成(例:利用不可な APIService の有無)。

確認項目は、クラスタのタイプ、バージョン、ランタイムに応じて異なります。以下に示す表は参考用です。確定的な情報源は、ACK コンソール内の確認ページです。

クラスタリソース

確認項目検証内容
APIServer SLBSLB インスタンスが存在すること
SLB インスタンスのステータスが「正常」であること
SLB リスナーの構成(ポートおよびプロトコル)が有効であること
SLB バックエンドサーバーグループの構成が有効であること
SLB のアクセスの制御構成が正しいこと(アクセスの制御が未設定の場合も合格とみなされます)
VPCVPC タイプのインスタンスが存在すること
VPC タイプのインスタンスのステータスが「正常」であること
vSwitchvSwitch が存在すること
vSwitch のステータスが「正常」であること
vSwitch に利用可能な IP アドレスが 2 つ以上あること

クラスタコンポーネント

確認項目検証内容
Kube Proxy Masterコンポーネントが存在すること
Kube Proxy Workerコンポーネントが存在すること
APIService利用不可な APIService が存在しないこと

コンポーネント確認

個別のコンポーネントをアップグレードする前に、事前アップグレード確認が実行されます。すべてのチェックに合格した場合にのみ、アップグレードが続行されます。

確認項目は、コンポーネントのタイプ、バージョン、ランタイムに応じて異なります。以下に示す表は参考用です。確定的な情報源は、ACK コンソール内の確認ページです。

コンポーネント確認項目検証内容
cloud-controller-managerAddon_CCMコンポーネントのアップグレードにより SLB の変更が発生しないこと
Component_Block_VersionCCM のバージョンをアップグレードできること
csi-pluginDaemonSet_AnnotationDaemonSet のアノテーションが期待通りであること
Csi_Driver_AttributesContainer Storage Interface (CSI) Driver のプロパティが要件を満たしていること
csi-provisionerStateful_Set_Existリソースが StatefulSet であること
Deployment_AnnotationDeployment のアノテーションが期待通りであること
Storage_Class_AttributesStorageClass のプロパティが要件を満たしていること
nginx-ingress-controllerDeployment_HealthyNginx Ingress Deployment が健全であること
Deployment_Not_Under_HPADeployment に対して Horizontal Pod Autoscaler (HPA) が設定されていないこと
Deployment_Not_ModifiedDeployment が変更されていないこと
Nginx_Ingress_Pod_Error_LogNginx にエラーログがないこと
LoadBalancer_Service_HealthyNginx サービスは正常です
Nginx_Ingress_ConfigurationIngress に互換性のない構成がないこと
aliyun-acr-credential-helperRamRole_Existコンポーネントに AliyunCSManagedAcrRole RAM ロールが付与されていること
ack-cost-exporterRamRole_Existコンポーネントに AliyunCSManagedCostRole RAM ロールが付与されていること

失敗した確認の修正

以下の表には、一般的な確認失敗事例とその解決方法が記載されています。

失敗した確認解決方法
コンポーネントのバージョンが低すぎるコンポーネントをアップグレードします。「コンポーネントの管理」をご参照ください。
APIService が利用不可以下の手順に従ってください。
クラスタに非推奨 API が含まれている非推奨 API」をご参照ください。

利用不可な APIService の解決手順:

  1. 利用不可な APIService を特定します。

    kubectl -n kube-system get apiservices | grep -i false
  2. 該当の APIService がまだ必要かどうかを確認します。

    重要

    誤って APIService を削除すると、クラスタに例外が発生する可能性があります。作業を実行する前に、APIService の目的を必ず確認してください。

  3. 該当の APIService が不要である場合は、削除します。

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

非推奨 API

Kubernetes 1.20 以降のクラスタでは、事前アップグレード確認時に、前日分の監査ログをスキャンして非推奨 API の使用状況を検出します。確認結果には、ご利用のクラスタで使用されている非推奨 API が一覧表示されます。

非推奨 API の検出仕組み

Kubernetes 1.20 から 1.22 へアップグレードする際、システムは 1.20 クラスタの監査ログをスキャンし、非推奨 API を検出します。

  • 非推奨 API が検出された場合、確認結果は通知のみとなり、アップグレードはブロックされません。

  • 1.22 へのアップグレード後に非推奨 API を継続して使用すると、セキュリティリスクが発生する可能性があります。

説明

非推奨 API の通知はアップグレードをブロックしません。クラスタがアップグレードされた後、非推奨 API のリソースは新しいリソースに置き換えられます。アップグレード後は、非推奨 API を使用してリソースを作成しないでください。

非推奨 API のカテゴリ

非推奨 API は、リクエスト元(User Agent)に基づいてカテゴリ分けされます。カテゴリを活用して、発生源を特定し、適切な対応を行ってください。

カテゴリ説明必要な操作
coreCore Kubernetes コンポーネント。ACK では、クラスタアップグレード時に自動的にアップグレードされます。apiserver、scheduler、kube-controller-managerなし — 確認ページには表示されません
ackACK が管理するコンポーネント。ACK が表示し、アップグレードを案内します。metrics-server、nginx-ingress-controller、coredns[操作][アドオン] を介して、ACK コンソール
opensourceオープンソースコミュニティのコンポーネント。ACK では一部のみを表示します。認識できないコンポーネントは unknown に分類されます。rancher、elasticsearch-operator必要に応じてアップグレードします。
unknownソースが認識できないコンポーネント。kubectl、agent、Go-http-client、okhttp必要に応じてアップグレードします。

非推奨 API の警告を解消するための ACK コンポーネントのアップグレード

ACK コンソールの 操作 > アドオン から ACK コンポーネントをアップグレードできます。これらのコンポーネントの非推奨 API 警告は、アップグレード完了後の翌日に解消されます。ACKコンソール

確認結果に coredns が含まれる場合、CoreDNS コンポーネントは Kubernetes 1.24 以降のクラスタで非推奨 API を使用することがあります。詳細については、「なぜ CoreDNS が非推奨 API を使用しているのですか?」をご参照ください。

次のステップ