翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
信頼性のベストプラクティス
このセクションでは、回復EKS力があり可用性の高いワークロードを実行するためのガイダンスを提供します。
このガイドの使い方
このガイドは、 で高可用性で耐障害性のあるサービスを開発および運用したいデベロッパーやアーキテクトを対象としていますEKS。このガイドは、使いやすくするためにさまざまなトピックエリアにまとめられています。各トピックは簡単な概要から始まり、クラスターの信頼性に関する推奨事項とベストプラクティスのリストが続きますEKS。
序章
の信頼性のベストプラクティスEKSは、次のトピックでグループ化されています。
-
アプリケーション
-
コントロールプレーン
-
データプレーン
システムの信頼性を高めるものは何ですか? システムが一定の期間にわたって環境の変化にもかかわらず、一貫して機能し、需要を満たすことができれば、信頼性と呼ぶことができます。これを実現するには、システムは障害を検出し、自動的に回復し、需要に応じてスケーリングできる必要があります。
お客様は、Kubernetes を基盤として使用して、ミッションクリティカルなアプリケーションとサービスを確実に運用できます。しかし、コンテナベースのアプリケーション設計の原則を組み込むことに加えて、ワークロードを確実に実行するには、信頼性の高いインフラストラクチャも必要です。Kubernetes では、インフラストラクチャはコントロールプレーンとデータプレーンで構成されます。
EKS は、可用性と耐障害性が高いように設計された本番稼働グレードの Kubernetes コントロールプレーンを提供します。
ではEKS、 AWSが Kubernetes コントロールプレーンの信頼性を担当します。EKS は、AWSリージョン内の 3 つのアベイラビリティーゾーンで Kubernetes コントロールプレーンを実行します。Kubernetes APIサーバーと etcd クラスターの可用性とスケーラビリティを自動的に管理します。
データプレーンの信頼性の責任は、ユーザー、顧客、および 間で共有されますAWS。EKS には、Kubernetes データプレーンをデプロイするための 3 つのワーカーノードオプションが用意されています。Fargate は、最も管理されたオプションであり、データプレーンのプロビジョニングとスケーリングを処理します。2 番目のオプションであるマネージドノードグループは、データプレーンのプロビジョニングと更新を処理します。最後に、セルフマネージド型ノードはデータプレーンの最小マネージド型オプションです。AWSマネージドデータプレーンを使用すると、責任が軽減されます。
マネージド型ノードグループは、EC2ノードのプロビジョニングとライフサイクル管理を自動化します。(EKSコンソール、、AWSAPI、AWSCLICloudFormation、Terraform、または EKSAPIを使用eksctl
) を使用して、マネージドノードを作成、スケーリング、アップグレードできます。マネージドノードはEKS、 アカウントで最適化された Amazon Linux 2 EC2インスタンスを実行し、SSHアクセスを有効にすることでカスタムソフトウェアパッケージをインストールできます。マネージドノードをプロビジョニングすると、複数のアベイラビリティーゾーンにまたがることができる EKSマネージド Auto Scaling グループの一部として実行されます。これは、マネージドノードの作成時に指定したサブネットを介して制御します。EKS また、 は Cluster Autoscaler で使用できるように、マネージドノードに自動的にタグ付けします。
Amazon は、マネージドノードグループの CVEsおよび セキュリティパッチの責任共有モデルEKSに従います。マネージドノードは Amazon EKSに最適化された を実行するためAMIs、Amazon EKSはバグ修正AMIs時にこれらのパッチ適用されたバージョンを構築する責任があります。ただし、これらのパッチ適用されたAMIバージョンは、マネージドノードグループにデプロイする責任があります。
EKS はノードの更新も管理しますが、更新プロセスを開始する必要があります。マネージドノードを更新するプロセスは、 EKSドキュメントで説明されています。
セルフマネージド型ノードを実行する場合は、Amazon EKS最適化 Linux AMIを使用してワーカーノードを作成できます。およびノードのパッチ適用AMIとアップグレードはお客様の責任となります。eksctl
、 CloudFormation、または インフラストラクチャをコードツールとして使用してセルフマネージドノードをプロビジョニングするのがベストプラクティスです。これにより、セルフマネージドノード を簡単にアップグレードできます。ワーカーノードを更新するときは、新しいノードへの移行を検討してください。移行プロセスによって古いノードグループが として汚染NoSchedule
され、新しいスタックが既存のポッドワークロードを受け入れる準備ができたらノードがドレインされるためです。ただし、セルフマネージドノード のインプレースアップグレードを実行することもできます。
責任共有モデル - Fargate
責任共有モデル - MNG
このガイドには、EKSデータプレーン、Kubernetes コアコンポーネント、およびアプリケーションの信頼性を向上させるために使用できる一連の推奨事項が含まれています。
フィードバック
このガイドは、より広範な EKS/Kubernetes コミュニティからの直接的なフィードバックと提案を収集 GitHub するために にリリースされています。ガイドに含めるべきベストプラクティスがある場合は、問題をファイルするか、 GitHub リポジトリに PR を送信してください。サービスに新機能が追加されたときや、新しいベストプラクティスが進化したときに、ガイドを定期的に更新する予定です。