BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Amazon EKSブループリントがKubernetesクラスタのブートストラップを効率化

Amazon EKSブループリントがKubernetesクラスタのブートストラップを効率化

ブックマーク

原文(投稿日:2022/05/28)へのリンク

AWSはEKSブループリントをリリースした。これは、EKSクラスタをシンプルに設定・デプロイするためのInfrastructure as Code(IaC)モジュールのコレクションである。EKSブループリントは現在、HashiCorp TerraformAWS Cloud Development Kit (CDK)の両方に実装されている。ブループリントは、Prometheus、Nginx、Argo CDなどの多くのオープンソースアドオンをサポートする。

ブループリントでは、EKSクラスタを構成するために完全なブートストラップが提供される。これはオープンソースのアプローチである。ブートストラップでは、含まれているアドオンの必要に応じて、適切なIAMポリシー、ロール、サービスアカウントの設定を行う。ブループリントには、コントロールプレーンとワーカーノードを含むEKSクラスタの状態に対する設定を含めることができる。ブループリントを設定すると、それを使って、複数のリージョンあるいはアカウントに渡って同じEKS環境をデプロイできる。

EKSブループリントは、管理者チームとアプリケーションチームを設定・管理するために使用できる。管理者チームはクラスタにアクセス・管理でき、アプリケーションチームはクラスタ名前空間で実行されている処理を管理できる。「ソフトマルチテナンシー」の形式で、複数のチームが同じクラスタ内で処理を実行するようにできる。Kevin Coleman氏、Apoorva Kulkarni氏、Mikhail Shapirove氏、Vara Bonthu氏の説明によると「ソフトマルチテナントは、ネイティブのKubernetes構造(名前空間、ロール、ロールバインディング、ネットワークポリシーなど)を活用して、テナントを論理的に分離する。」

EKSブループリントでは、処理設定アドオン設定を管理する方法を示す2つのArgo CDリポジトリのサンプルを提供する。次の例では、Argo CDを使ってEKSクラスタをセットアップする方法を示している。Argo CDにはサンプルのリポジトリを活用する2つのアプリケーションリソースが含まれる。

module "kubernetes-addons" {

 ...
  enable_argocd         = true
  argocd_manage_add_ons = true # Indicates that Argo CD is responsible for managing/deploying Add-ons.
  addons = {
    path               = "chart"
    repo_url           = "https://github.com/aws-samples/eks-blueprints-add-ons.git"
    add_on_application = true
  }
  workloads = {
    path               = "envs/dev"
    repo_url           = "https://github.com/aws-samples/eks-blueprints-workloads.git"
    add_on_application = false
  }
}

EKSブループリントは、EKSとセルフマネージドアドオンの両方をEKSクラスタにセットアップできる。Amazon EKSアドオンは、Amazonによって整理・管理されている。そこには最新のセキュリティパッチとバグ修正が含まれており、AmazonによってEKSで動作することが検証されている。Amazon EKSアドオンが利用できるが、セルフマネージドバージョンがすでに使われている場合には、代わりにAmazonバージョンをインストールできる。

アドオンとしてサーバサイドのHelmレポジトリが参照される。これはオープンソースである。EKSブループリントには、AWS APIにリクエストする各アドオン向けに、サービスアカウントに対するデフォルトのIAMロールが含まれている。これらのデフォルトは、必要に応じてオーバーライドできる。

Amazon EKSによって管理される、Amazon EKSアドオン用の設定フィールドは、Amazon EKS APIを通して更新できる。アドオンの起動後は、EKSによって管理されていない設定フィールドは、Kubernetesクラスタを介して調整できる。その際、Kubernetesサーバサイド適用機能が利用されるため、これらの変更がAmazon EKSによって上書きされることはない。Amazon EKSアドオンは、1.18以降のAmazon EKSクラスタで使うことができる。

このリリースには、DatadogHashiCorpSnykといった企業からの多数のパートナーアドオンも含まれている。HashiCorpは、VaultインスタンスをKubernetesにデプロイするVaultアドオンをリリースした。これにより、以下に示すワークフローでVaultを有効にすることにより、EKSでVaultに簡単にアクセスできるようになる。

module "eks_addons" {
 source = "github.com/aws-ia/terraform-aws-eks-blueprints//modules/kubernetes-addons"
 eks_cluster_id = module.eks_blueprints.eks_cluster_id
 enable_vault   = true
}

TerraformCDK用のEKSブループリントは、GitHubから入手できる。EKSブループリントは無料で使用でき、デプロイされたリソースに対してのみ費用が発生する。

作者について

この記事に星をつける

おすすめ度
スタイル

BT