Upgrade to Pro — share decks privately, control downloads, hide ads and more …

re:Invent で振り返る EKS & ROSA サービスアップデート! / EKS & ...

riita10069
February 11, 2024
180

re:Invent で振り返る EKS & ROSA サービスアップデート! / EKS & ROSA Service Updates!! 2023 Q4

EKS と ROSA が昨年(2023 年)末から、今年の1月にかけて発表したアップデートをピックアップしてご紹介させていただきました。
本イベントにご参加いただきまして、誠にありがとうございました。

riita10069

February 11, 2024
Tweet

More Decks by riita10069

Transcript

  1. © 2024, Amazon Web Services, Inc. or its affiliates. ©

    2024, Amazon Web Services, Inc. or its affiliates. re:Invent で振り返る EKS & ROSA サービスアップデート Ryota Yamada Amazon Web Services Inc.
  2. © 2024, Amazon Web Services, Inc. or its affiliates. 好きなAWSのサービス

    AWS のコンテナサービスの魅力を少しでも多くの お客様にお伝えできるよう努めております。 Ryota Yamada / riita10069 Amazon Web Services Japan G.K. / Tech Training Specialist
  3. © 2024, Amazon Web Services, Inc. or its affiliates. アジェンダ

    • EKS Pod Identity • EKS Access Management Control • Mountpoint S3 CSI driver が EKS Addon に追加 • Agentless metrics collection for Amazon Managed Service for Prometheus • EKS upgrade insight • Extended support for Kubernetes Versions • Cluster Health Status • ROSA の Hosted Control Plane(HCP) が GA
  4. © 2024, Amazon Web Services, Inc. or its affiliates. EKS

    Pod Identity – 概要 5 AWS API のみで、Kubernetes ServiceAccount への IAM ロールの紐付けが可能に 1. Amazon EKS Pod Identity エージェントを EKS クラスターにインストール 2. IAM ロールを作成し、信頼ポリシーの Principal として pods.eks.amazonaws.com を指定 3. IAM ロールを ServiceAccount にマッピングする IAM ロール Pod Service Account 信頼ポリシーの Principal に pods.eks.amazonaws.com を指定 コンソール、または AWS API を⽤いて 、IAM ロールと ServiceAccount を 紐付ける ServiceAccount の Annotations に 紐付ける IAM ロールの ARN を付与 信頼ポリシーの Condition で、 当該 IAM ロールに紐付ける ServiceAccount 名を指定 IAM Roles for Service Account EKS Pod Identity Kubernetesのマニフェストで ARN との紐付けが不要に︕→ IaC の簡素化
  5. © 2024, Amazon Web Services, Inc. or its affiliates. EKS

    Pod Identity aws_eks_pod_identity_association 6 https://registry.terraform.io/providers/hashicorp/aws/5.32.1/docs/resources/eks_pod_identity_association より引用 resource "aws_eks_pod_identity_association" "example" { cluster_name = aws_eks_cluster.example.name namespace = "example” service_account = "example-sa” role_arn = aws_iam_role.example.arn } • マネジメントコンソール、CloudFormation でも利⽤可能
  6. © 2024, Amazon Web Services, Inc. or its affiliates. EKS

    Pod Identity の考慮事項 • Amazon EKS のみサポート § Amazon EKS Anywhere、Red Hat OpenShift Service on AWS、AWS Outposts、 EC2 上のセルフマネージド Kubernetes クラスターでの利⽤は未サポート • Windows と AWS Fargate での利⽤は未サポート • IAM 認証を必要とする Amazon EKS Add-on での利⽤は未サポート • 上記の場合、従来通り IAM Roles for Service Accounts(IRSA) を利⽤
  7. © 2024, Amazon Web Services, Inc. or its affiliates. Access

    Management Control と aws-auth ConfigMapの課題 8 https://s3.us-west-2.amazonaws.com/amazon-eks/cloudformation/2020-10-29/aws-auth-cm.yaml より引用 • Kubernetes の User 及び Group と IAM Role の紐付けする新機能 § これまでは、aws-auth ConfigMap を利⽤することで実現可能だった § aws-auth ConfigMap は、IRSA と同様に Kubernetes リソースに IAM Role の ARN を設定する必要があり、IaC が複雑になる課題があった apiVersion: v1 kind: ConfigMap metadata: name: aws-auth namespace: kube-system data: mapRoles: | - rolearn: <ARN of instance role (not instance profile)> username: system:node:{{EC2PrivateDNSName}} groups: - system:bootstrappers - system:nodes
  8. © 2024, Amazon Web Services, Inc. or its affiliates. EKS

    クラスタを作成する際に課題 • EKS クラスターを作成した IAM ユーザー / ロールには system:masters グループの権限が付与される § system:masters - 任意のリソースで任意のアクションが実⾏可能 • EKS クラスターの作成には専⽤の IAM ロールを利⽤することを推奨 • 通常の業務では、EKS クラスターの作成に利⽤した IAM ロールは利⽤ せず、削除することを推奨 • EKS クラスター作成時に aws-auth ConfigMap も同時に作成する必要 9 EKS クラスター 作成⽤ IAMロール Amazon EKS admin ops-user EKS クラスター作成 通常業務 このIAMロールは削除する→
  9. © 2024, Amazon Web Services, Inc. or its affiliates. EKS

    Access Management Control • EKS API を通じて Kubernetes オブジェクトへのアクセス権限を AWS IAM Principal に付与できるようになった。 • アクセスエントリとアクセスポリシーという2つの新しい概念 § アクセスエントリは、Amazon EKS クラスターへの認証に使⽤されるクラス ターアイデンティティで、AWS IAM ユーザーまたはロールに直接リンク。 § アクセスポリシーは、特定のクラスターアクションを許可する権限セット • 認証モードにより、移⾏時に ConfigMap との両⽴も可能に 10 認証モード CONFIG_MAP aws-auth ConfigMap API_AND_CONFIG_MAP EKS API で作成したアクセスエントリおよび aws-auth ConfigMap API EKS API で作成したアクセスエントリ
  10. © 2024, Amazon Web Services, Inc. or its affiliates. 11

    https://registry.terraform.io/providers/hashicorp/aws/5.33.0/docs/resources/eks_access_policy_association より引用 https://registry.terraform.io/providers/hashicorp/aws/5.34.0/docs/resources/eks_access_entry より引用 resource "aws_eks_access_policy_association" "example" { cluster_name = aws_eks_cluster.example.name policy_arn = "arn:aws:eks::aws:cluster-access-policy/AmazonEKSViewPolicy" principal_arn = aws_iam_user.example.arn access_scope = { type = "namespace" namespaces = ["example-namespace"] } } • マネジメントコンソール、CloudFormation でも利⽤可能 resource "aws_eks_access_entry" "example" { cluster_name = aws_eks_cluster.example.name principal_arn = aws_iam_role.example.arn kubernetes_groups = ["group-1", "group-2"] type = "STANDARD" } EKS Access Management Control
  11. © 2024, Amazon Web Services, Inc. or its affiliates. Mountpoint

    for Amazon S3 CSI Driver • Mountpoint for Amazon S3 は、S3 バケットをローカルファイルシステ ムとしてマウントするクライアントツールで、S3に保存されている⼤規模 なデータセットを読み込む⽤途で⽤いられる。 • 2023 年 11 ⽉、Container Storage Interface (CSI) に対応した Mountpoint for Amazon S3 CSI driver がリリースされた。 これにより、Kubernetes Pod から Amazon S3 内のオブジェクトに対し て、ファイルシステムのインタフェースを介してのアクセスを実現 Amazon EC2 Pod Amazon EKS Amazon S3 PVC (PersistentVolumeClaim) PV (PersistentVolume)
  12. © 2024, Amazon Web Services, Inc. or its affiliates. Amazon

    Managed Service for Prometheus collector provides agentless metric collection for Amazon EKS • Amazon Managed Service for Prometheus collector を発表 § Amazon EKS で稼働するシステムの Prometheus メトリクスを収集できるエー ジェ ントレスのデータコレクタ § EKS上のアプリケーションや、インフラストラクチャ、Kubernetes API サーバな どから Prometheus メトリクスを⾃動的に検出し、収集する § エージェントレスが故に、インストールやパッチ適⽤、バージョンアップといっ た管理作業から解放される • Amazon Managed Service for Prometheus が利⽤可能な全てのリー ジョンで利⽤できる 13
  13. © 2024, Amazon Web Services, Inc. or its affiliates. EKS

    Upgrade Insight 14 https://aws.amazon.com/jp/blogs/containers/accelerate-the-testing- and-verification-of-amazon-eks-upgrades-with-upgrade-insights/ • Kubernetes クラスタのバージョンアップ時に修正の必要性を可視化 • バージョンアップに伴って、Kubernetes API の⾮推奨や削除などの 影響があるかをチェックすることができるダッシュボード • pluto などのツールによってマニフェストまたは Helm パッケージを 検査できるが、コントローラーやオペレーターなどのアプリケーショ ンが利⽤している Kubernetes API を検出できないことが課題 • Upgrade Insight では、EKS クラスタの過去 30 ⽇間の audit ログをス キャンし、⾮推奨または削除される API を利⽤しているかを識別。
  14. © 2024, Amazon Web Services, Inc. or its affiliates. EKS

    Upgrade Insight 15 https://aws.amazon.com/jp/blogs/containers/accelerate-the-testing-and-verification-of- amazon-eks-upgrades-with-upgrade-insights/
  15. © 2024, Amazon Web Services, Inc. or its affiliates. Extended

    support for Kubernetes Versions • Kubernetes のマイナーバージョンが Amazon EKS で利⽤開始になっ た時点から最⼤ 26 ヶ⽉間のサポートを提供 § 標準サポート︓Kuberenetes バージョンが Amazon EKS で利⽤可能になった時点から14ヶ⽉間 § 延⻑サポート︓標準サポートが終了した直後から12 ヶ⽉間 • サポート内容 § Kubernetes コントロールプレーンへのセキュリティパッチ § Amazon VPC CNI、kube-proxy、CoreDNS アドオン、AWS が提供する Amazon EKS 最適化 Amazon Linux AMI、Bottlerocket、Amazon EKS 最適化 Windows AMI、Amazon EKS Fargate ノードの重要なパッチ • EKSクラスターの実⾏料⾦ § 標準サポート︓クラスターあたり 0.10 USD / 1 hour § 延⻑サポート︓クラスターあたり 0.60 USD / 1 hour (プレビュー期間は追加料⾦なし) 16 https://aws.amazon.com/jp/blogs/news/amazon-eks-extended-support-for-kubernetes-versions-pricing/
  16. © 2024, Amazon Web Services, Inc. or its affiliates. Cluster

    Health Status • EKS クラスターに関する健全性の問題を詳細に確認できます。 • IAM VPC KMS のような EKS クラスタの構築において前提条件となる AWS リソースの設定の不備などの不健全な状態を検出します。 • 具体的には、以下のような状態を検出できる。 § 該当するVPC サブネットまたは SG が⾒つからない § IP アドレスが枯渇している § クラスタが適切な認証情報を取得できない § 該当する KMS キーが⾒つからない、利⽤できない 17 https://docs.aws.amazon.com/eks/latest/userguide/trou bleshooting.html#cluster-health-status
  17. © 2024, Amazon Web Services, Inc. or its affiliates. ROSA

    の Hosted Control Plane(HCP) が GA 18 • コントロールプレーンを Red Hat 管理の VPC 上で構成可能になり、 クラスターの作成時間が短縮され、インフラコスト削減が可能に § HCP ではない構成 ( ROSA Classic と呼ばます) の場合コントロールプレーン をお客様 VPC に EC2 で⽴てる必要があり、最⼩構成でも7台の EC2 インス タンスが必要としていたが、お客様の VPC に必要な最⼩ EC2 台数は 2台に § HCP ではクラスター料⾦として $0.25/h § ROSA Classic, HCP 問わず、ワーカーノード 4vCPU ごとに$0.171/h
  18. © 2024, Amazon Web Services, Inc. or its affiliates. Thank

    you! © 2024, Amazon Web Services, Inc. or its affiliates.