Alibaba Cloud Container Service for Kubernetes (ACK) は、コンテナー向けサービスの技術アーキテクチャおよびコアコンポーネントをマネージドで提供します。ACK クラスター上で実行される、マネージド対象外のコンポーネントやアプリケーションに対する不適切な操作は、サービス障害を引き起こす可能性があります。運用リスクを効果的に評価・軽減するため、ACK の利用を開始する前に、本トピックに記載された推奨事項および注意事項をご確認ください。
目次
項目 | 関連ドキュメント |
重要事項
データプレーンコンポーネント
データプレーンコンポーネントとは、ご利用の ECS インスタンス上で実行されるシステムコンポーネントであり、CoreDNS、Ingress、kube-proxy、Terway、kubelet などが該当します。これらのコンポーネントはご利用の ECS インスタンス上で動作するため、その安定性は Alibaba Cloud とお客様の双方による共同メンテナンスが必要です。
ACK では、データプレーンコンポーネントに対して以下のサポートを提供しています。
パラメーター化された構成管理、定期的な機能最適化、バグ修正、CVE パッチ適用、および関連するガイドドキュメントの提供。
モニタリングおよびアラートといった観測性機能。一部のコアコンポーネントのログは SLS を通じてお客様へ提供および配信されます。
お客様のクラスター規模に応じた、構成に関するベストプラクティスおよび推奨事項。
コンポーネントのバージョン、構成、負荷、デプロイメントトポロジー、インスタンス数など、関連する各種メトリクスを定期的に検査し、異常を検知する機能。
データプレーンコンポーネントを利用する際は、以下の推奨事項に従ってください。
最新のコンポーネントバージョンをご利用ください。新バージョンには、多くの場合、バグ修正や新機能が含まれています。新バージョンがリリースされた後は、サービスの安定性を確保しつつ、関連ドキュメントに記載されたアップグレード手順に従って、適切なタイミングでアップグレードを行ってください。詳細については、「コンポーネント」をご参照ください。
ACK アラートセンターに連絡先のメールアドレスおよび携帯電話番号を設定し、アラート通知方法を構成してください。Alibaba Cloud はこれらのチャネルを用いてアラートおよびサービス通知を送信します。詳細については、「ACK アラート管理
コンポーネントに関する安定性リスクレポートを受信した場合は、提示された手順に従って速やかに対応し、セキュリティリスクを解消してください。
カスタムコンポーネントのパラメーターは、ACK コンソール を使用して、 に移動するか、OpenAPI を使用してのみ設定してください。他の方法でコンポーネントの構成を変更すると、コンポーネントの障害が発生する可能性があります。詳細については、「コンポーネントの管理」をご参照ください。
IaaS レイヤーの OpenAPI 操作を使用して、コンポーネントのランタイム環境を変更しないでください。これには、ECS OpenAPI を用いた ECS インスタンスの状態変更、ワーカーノードのセキュリティグループ設定またはネットワーク構成の変更、SLB OpenAPI を用いた SLB 構成の変更などが含まれます。IaaS リソースに対する無許可の変更は、データプレーンコンポーネントの不具合を引き起こす可能性があります。
一部のデータプレーンコンポーネントは、オープンソースの上流バージョンに基づいており、バグや脆弱性を含む場合があります。このような問題によるサービス障害を回避するため、コンポーネントは速やかにアップグレードしてください。
クラスターのアップグレード
Kubernetes のバージョンアップグレードには、必ず ACK のクラスターのアップグレード機能をご利用ください。Kubernetes を手動でアップグレードすると、ACK クラスターの安定性および互換性に問題が生じる可能性があります。詳細な手順については、「クラスターのアップグレードおよびコントロールプレーン/ノードプールの個別アップグレード」をご参照ください。
ACK では、クラスターのアップグレードに対して以下のサポートを提供しています。
Kubernetes バージョンのアップグレード機能。
アップグレード前のチェック機能により、クラスターがアップグレード可能かどうかを確認します。
新規 Kubernetes バージョンのリリースノート(前バージョンからの変更点を含む)。
アップグレード時のリソース変更に起因する潜在的リスクに関する通知。
クラスターのアップグレード機能を利用する際は、以下の推奨事項に従ってください。
アップグレード前のチェックを実行し、すべてのブロッキング課題を解決してから進めてください。
Kubernetes のリリースノートを確認し、お客様のクラスターおよびワークロードの状況に基づいてアップグレードリスクを評価してください。詳細については、「[非推奨] Kubernetes バージョンのリリース概要」をご参照ください。
クラスターのアップグレードはロールバックできないため、十分なアップグレード計画を作成し、事前にバックアップを実行してください。
ACK のバージョンサポートポリシーに従い、現在のバージョンのサポート期間内にクラスターをアップグレードしてください。詳細については、「バージョンガイド」をご参照ください。
Kubernetes ネイティブ構成
以下のディレクトリのパス、リンク、および内容を含む、重要な Kubernetes 構成を変更しないでください。
/var/lib/kubelet
/var/lib/docker
/etc/kubernetes
/etc/kubeadm
/var/lib/containerd
YAML テンプレートで Kubernetes 予約済みのアノテーションを使用しないでください。これにより、リソースの利用不可、作成失敗、または異常動作が発生する可能性があります。
kubernetes.io/またはk8s.io/で始まるアノテーションは、コアコンポーネント専用に予約されています。例:pv.kubernetes.io/bind-completed: "yes"。
ACK サーバーレスクラスター
ACK サーバーレスクラスター では、以下のシナリオにおいて補償は提供されません。
クラスター操作を簡素化するため、クラスターのコンポーネント管理が有効になっている場合、ACK Serverless クラスター は一部のシステムコンポーネントを管理します。管理対象のコンポーネントが依存する Kubernetes リソースが意図せず削除されたことによりお客様の業務に影響が出た場合、補償は提供されません。
登録済みクラスター
ACK コンソール を通じて外部 Kubernetes クラスターを登録する際は、外部クラスターと Alibaba Cloud 間のネットワーク接続が安定していることを確認してください。
ACK は外部 Kubernetes クラスターの登録を可能にしますが、その安定性を制御したり、不適切な操作を防止したりすることはできません。登録済みクラスター経由で外部クラスターのノードにラベル、アノテーション、またはタグを設定する際は、アプリケーション障害を引き起こす可能性があるため、十分に注意してください。
アプリカタログ
Kubernetes アプリケーションの充実を目的として、ACK Marketplace では、オープンソースソフトウェアをベースに適応およびカスタマイズされたアプリケーションを収録したアプリカタログを提供しています。ACK は、オープンソースソフトウェア自体に起因する欠陥を制御できません。このリスクを十分に認識してください。詳細については、「Marketplace」をご参照ください。
高リスク操作
ACK における特定の操作は、サービスの安定性に重大な影響を与える可能性があります。これらの機能を利用する前に、以下の高リスク操作およびその影響を理解してください。
クラスター関連の高リスク操作
カテゴリ | 高リスク操作 | 影響 | 復旧方法 |
API Server | API Server で使用される CLB を、LoadBalancer 型の Service など、他の目的で再利用すること。 | クラスターが利用不可となり、サービストラフィックに影響が出ます。 | 元の構成を復元するか、カスタマーサポートへお問い合わせください。 |
API Server で使用されるリスナー、サーバーグループ、ACL、CLB タグなどの転送制御に関連する CLB 構成を変更すること。 | クラスターが不具合を起こします。 | 元の構成を復元してください。 | |
API Server で使用される CLB を削除すること。 | クラスターが使用不能になります。 | 不可逆です。クラスターを再作成してください。手順については、「ACK マネージドクラスターの作成」をご参照ください。 | |
ワーカーノード | クラスターノードのセキュリティグループを変更すること。 | ノードが利用不可になる可能性があります。 | 自動作成されたノードセキュリティグループにノードを再追加してください。詳細については、「セキュリティグループをインスタンス(プライマリ NIC)に関連付ける」をご参照ください。 |
ノードの有効期限切れまたは削除。 | ノードが利用不可になります。 | 不可逆です。 | |
オペレーティングシステムの再インストール。 | ノード上のコンポーネントが削除されます。 | ノードをクラスターから削除し、再度追加してください。手順については、「ノードの削除」および「既存ノードの追加」をご参照ください。 | |
ノードコンポーネントのバージョンを手動でアップグレードすること。 | ノードが使用できなくなる可能性があります。 | 元のバージョンへロールバックしてください。 | |
ノードの IP アドレスを変更すること。 | ノードが利用不可になります。 | 元の IP アドレスを復元してください。 | |
kubelet、Docker、containerd などのコアコンポーネントのパラメーターを手動で変更すること。 | ノードが利用不可になる可能性があります。 | 公式ドキュメントに記載された推奨構成パラメーターをご利用ください。 | |
オペレーティングシステムの構成を変更すること。 | ノードが利用不可になる可能性があります。 | 構成を復元するか、ノードを削除して再作成してください。 | |
ノードの時刻を変更すること。 | ノード上のコンポーネントが不具合を起こす可能性があります。 | 元のノード時刻を復元してください。 | |
サポートされていない方法でノードのコンピューティングリソースをクラスターに追加すること。 | ACK では、コンソール、OpenAPI、CLI を通じたノードのコンピューティングリソースの追加をサポートしています。詳細については、「既存ノードの追加」をご参照ください。それ以外の方法で追加されたノードは ACK によって認識されないため、ライフサイクル管理、自動化された O&M、および技術サポートは利用できません。詳細については、「コンソールに「その他ノード」と表示される理由」をご参照ください。 | ノードプールを介してコンピューティングリソースを管理してください。サポートされていない方法を継続して使用する場合は、ノードとクラスターのコンポーネント(Kubernetes コンポーネント、ネットワーキング、ストレージ、セキュリティなど)間の互換性を確保してください。 | |
Master ノード(ACK 専用クラスター) | クラスターノードのセキュリティグループを変更すること。 | Master ノードが利用不可になる可能性があります。 | 自動作成されたノードセキュリティグループにノードを再追加してください。詳細については、「セキュリティグループをインスタンス(プライマリ NIC)に関連付ける」をご参照ください。 |
ノードの有効期限切れまたは削除。 | Master ノードが利用不可になります。 | 不可逆です。 | |
オペレーティングシステムの再インストール。 | Master ノード上のコンポーネントが削除されます。 | 不可逆です。 | |
Master または etcd コンポーネントのバージョンを手動でアップグレードすること。 | クラスターが使用できなくなる可能性があります。 | 元のバージョンへロールバックしてください。 | |
ノード上の /etc/kubernetes などのコアディレクトリを削除またはフォーマットすること。 | Master ノードが利用不可になります。 | 不可逆です。 | |
ノードの IP アドレスを変更すること。 | Master ノードが利用不可になります。 | 元の IP アドレスを復元してください。 | |
etcd、kube-apiserver、Docker などのコアコンポーネントのパラメーターを手動で変更すること。 | Master ノードが利用不可になる可能性があります。 | 公式ドキュメントに記載された推奨構成パラメーターをご利用ください。 | |
Master または etcd 証明書を手動で置き換えること。 | クラスターが使用できなくなる可能性があります。 | 不可逆です。 | |
Master ノードを手動で追加または削除すること。 | クラスターが使用できなくなる可能性があります。 | 不可逆です。 | |
ノードの時刻を変更すること。 | ノード上のコンポーネントが不具合を起こす可能性があります。 | 元のノード時刻を復元してください。 | |
その他 | RAM を通じて権限または構成を変更すること。 | SLB インスタンスなどのクラスターリソースの作成に失敗する可能性があります。 | 元の権限を復元してください。 |
説明 バージョン 1.26 より前のクラスターにのみ適用されます。 クラスター内の事前定義済みの PodSecurityPolicy リソース( | コアクラスターコンポーネントが不具合を起こす可能性があります。Pod の作成および更新が失敗する可能性があります。 | 関連するリソースを復元してください。手順については、「デフォルトの ACK Pod セキュリティポリシーの構成または復元」をご参照ください。 |
ノードプール関連の高リスク操作
高リスク操作 | 影響 | 復旧方法 |
スケーリンググループを削除すること。 | ノードプールが不具合を起こします。 | 不可逆です。ノードプールを再作成してください。手順については、「ノードプールの作成」をご参照ください。 |
kubectl を使用してノードを削除すること。 | ノードプールに表示されるノード数と実際のノード数が一致しなくなります。 | ACK コンソールまたはノードプール API(「ノードの削除」を参照)を介してノードを削除するか、スケールインするために希望ノード数を調整してください(「ノードプールの作成および管理」を参照)。 |
ECS インスタンスを直接リリースすること。 | ノードプールの詳細ページが正しく表示されない場合があります。希望ノード数が有効になっているノードプールの場合、システムは希望数を維持するために自動的にスケールアウトします。 | 不可逆です。ACK コンソールまたはノードプール API(「ノードプールの作成および管理」を参照)を介して希望ノード数を調整することで、正しくスケールインしてください。または、特定のノードを削除してください(「ノードの削除」を参照)。 |
自動スケーリングが有効なノードプールに対して、手動でスケールアウトまたはスケールインすること。 | 自動スケーリングコンポーネントがポリシーに基づいてノード数を調整するため、予期しない結果が生じる可能性があります。 | 不可逆です。自動スケーリングが有効なノードプールに対しては、手動での介入を行わないでください。 |
ESS スケーリンググループの最大または最小インスタンス数を変更すること。 | スケーリングが不具合を起こす可能性があります。 |
|
データのバックアップを行わずに既存ノードを追加すること。 | インスタンスのデータが失われます。 | 不可逆です。
|
ノードのシステムディスクに重要なデータを保存すること。 | ノードのセルフヒーリング操作により、ノード構成がリセットされ、システムディスク上のデータが失われる可能性があります。 | 不可逆です。重要なデータは、追加のデータディスク、クラウドディスク、NAS、または OSS に保存してください。 |
仮想ノード関連の高リスク操作
高リスク操作 | 影響 | 復旧方法 |
仮想ノードコンポーネントをアンインストールすること。 | Serverless Pod の管理が失敗します。既存の ECI および ACS Pod を削除できず、新しい Pod を作成できません。 |
ネットワークおよび Server Load Balancer 関連の高リスク操作
高リスク操作 | 影響 | 復旧方法 |
カーネルパラメーター | ネットワーク接続が失敗します。 | カーネルパラメーターを |
カーネルパラメーターを変更すること。
| ネットワーク接続が失敗します。 | カーネルパラメーターを以下のように設定してください。
|
カーネルパラメーター | Pod のヘルスチェックが失敗します。 | カーネルパラメーターを |
カーネルパラメーター | NAT が不具合を起こします。 | カーネルパラメーターを |
カーネルパラメーター | 断続的なネットワーク接続の問題が発生します。 | カーネルパラメーターをデフォルト値に復元してください: |
Firewalld や ufw などのファイアウォールソフトウェアをインストールすること。 | コンテナーのネットワーキングが失敗します。 | ファイアウォールソフトウェアをアンインストールし、ノードを再起動してください。 |
ノードのセキュリティグループで、コンテナー CIDR に対する UDP ポート 53 を許可しないこと。 | クラスター DNS が失敗します。 | 公式ドキュメントの推奨事項に従ってセキュリティグループを構成してください。 |
ACK が SLB インスタンスに追加したタグを変更または削除すること。 | SLB が不具合を起こします。 | SLB のタグを復元してください。 |
SLB コンソールを通じて、ACK が管理する SLB インスタンス(SLB インスタンス、リスナー、vServer グループを含む)の構成を変更すること。 | SLB が不具合を起こします。 | SLB の構成を復元してください。 |
Service から既存 SLB の再利用に関するアノテーションを削除すること: | SLB が不具合を起こします。 | Service に既存 SLB の再利用に関するアノテーションを再追加してください。 説明 既存 SLB を再利用する Service は、自動作成 SLB を使用するように直接変更できません。Service を再作成する必要があります。 |
SLB コンソールを通じて ACK が作成した SLB を削除すること。 | クラスターネットワーキングが失敗する可能性があります。 | 関連する Service を削除することで SLB を削除してください。手順については、「Service の削除」をご参照ください。 |
Nginx Ingress Controller がインストールされている状態で、 | Ingress Controller が不具合を起こすか、クラッシュします。 | 以下の YAML を使用して、同じ名前の新しい Service を作成してください。 |
ECS ノードの DNS 構成ファイル /etc/resolv.conf で | 構成された DNS サーバーが誤って設定されている場合、DNS 解決が失敗し、クラスターの運用に影響が出る可能性があります。 | 自己管理型 DNS サーバーを上流サーバーとして使用する場合は、代わりに CoreDNS で構成してください。手順については、「非マネージド CoreDNS 構成」をご参照ください。 |
ACK が作成した弾性ネットワークインターフェース(ENI)または Lingjun ENI を変更または削除すること。 | Pod のネットワーキングが失敗します。 | 不可逆です。 |
ネットワーク関連の CRD を変更または削除すること。 | Terway が不具合を起こします。深刻なケースでは、ネットワークまたは Pod の障害が発生する可能性があります。 | 不可逆です。 |
ネットワーク関連のシステム CR を作成、変更、または削除すること。 | Terway が不具合を起こします。深刻なケースでは、ネットワークまたは Pod の障害が発生する可能性があります。 | カスタム CR 定義を削除し、関連する Pod を再作成してください。 |
Terway ネットワーク構成で変更が許可されていないフィールドを変更すること。構成可能なパラメーターについては、「カスタム Terway 構成パラメーター」をご参照ください。 | Terway が不具合を起こします。深刻なケースでは、ネットワークまたは Pod の障害が発生する可能性があります。 | 元の構成を復元し、ノードを再起動してください。 |
ストレージ関連の高リスク操作
高リスク操作 | 影響 | 復旧方法 |
コンソールを通じてクラウドディスクを手動でデタッチすること。 | Pod が書き込み時に IO エラーを報告します。 | Pod を再起動し、ノード上の残存マウントを手動でクリーンアップしてください。 |
ノード上のディスクマウントパスで umount を実行すること。 | Pod がローカルディスクに書き込みます。 | Pod を再起動してください。 |
ノード上でクラウドディスクを直接操作すること。 | Pod がローカルディスクに書き込みます。 | 不可逆です。 |
同一のクラウドディスクを複数の Pod にマウントすること。 | Pod がローカルディスクに書き込み、または IO エラーを報告します。 | 1 つのクラウドディスクを 1 つの Pod のみで使用するよう保証してください。 重要 クラウドディスクは、Alibaba Cloud Storage が提供する非共有ストレージであり、一度に 1 つの Pod にのみマウントできます。 |
NAS マウントディレクトリを手動で削除すること。 | Pod が書き込み時に IO エラーを報告します。 | Pod を再起動してください。 |
使用中の NAS ファイルシステムまたはマウントポイントを削除すること。 | Pod が IO ハングを経験します。 | ECS ノードを再起動してください。手順については、「ECS インスタンスの再起動」をご参照ください。 |
ログ関連の高リスク操作
高リスク操作 | 影響 | 復旧方法 |
ホスト上の /tmp/ccs-log-collector/pos ディレクトリを削除すること。 | ログが重複して収集されます。 | 不可逆です。このディレクトリはログ収集位置を記録します。 |
ホスト上の /tmp/ccs-log-collector/buffer ディレクトリを削除すること。 | ログが失われます。 | 不可逆です。このディレクトリは処理待ちのキャッシュ済みログを格納します。 |
aliyunlogconfig CRD リソースを削除すること。 | ログ収集が停止します。 | 削除された CRD およびそのリソースを再作成してください。ただし、停止期間中に収集されたログは復元できません。 CRD の削除は、関連するすべてのインスタンスも削除します。CRD を復元した後でも、削除されたインスタンスは手動で再作成する必要があります。 |
ログコンポーネントを削除すること。 | ログ収集が停止します。 | ログコンポーネントを再インストールし、aliyunlogconfig CRD インスタンスを手動で復元してください。停止期間中に収集されたログは復元できません。 ログコンポーネントの削除は、aliyunlogconfig CRD および Logtail コレクターの両方を削除し、その期間中はすべてのログ収集機能が無効になります。 |