Amazon Elastic Container Service for Kubernetes(Amazon EKS)

# Amazon Elastic Container Service for Kubernetes(Amazon EKS)

https://d1.awsstatic.com/webinars/jp/pdf/services/20190410_AWS-BlackBelt_AmazonEKS.pdf

 

## AWSのコンテナ関連サービス

  • レジストリ
    • ECR
  • コントロールプレーン(デプロイ、スケジューリング、スケーリング、コンテナアプリケーションの管理)
    • ECS
    • EKS
  • データプレーン(コンテナの実行環境)
    • EC2
    • Fargate

 

## 概要

今日 およそ半数のK8sワークロードはAWS上で実行されている。K8s Control plane をマネージドサービスとして提供

 

## EKS の概要

  • 運用難易度の高いKubernetes Control plane のマネージドサービスで提供
  • Kubernetes エコシステムのOSSやツールがそのまま動かせる
  • AWSサービスとの連携
  • EKSサービスチームとAWS OSSチームによるK8sコミュニティへの貢献

 

  • バージョン
    • 現行のK8sバージョンから三世代分までが利用可能
  • コンプライアンス
    • SLA99.9%
  • アーキテクチャ
    • EKS(Control plane)がいるEKS VPC
    • データプレーンのいるCustomer VPC
    • Controle plane -> ENI - Data plane
    • EKS - NLB -> Data plane
  • Preparation
    • クライアント
      • Kubectl のインストール
      • Aws-iam-authenticator のインストール
        • Iam によりRBACを実現
    • AWS環境
      • EKSサービスロールの作成
      • EKS 用のVPCを作成
        • EKSコントロールプレーンの通信用に利用するSecurityGroupが必要
  • APIサーバエンドポイントへのアクセス
  • Data plane
    • EC2
      • EKS最適化AMI
        • Amazon Linux2
        • 設定なしでEKSと連携可能
        • コントロールプレーンを自動的に検知して接続
      • GPU に対応したAMI
      • カスタマイズAMI
    • Fargate(2019 re-invent で発表)
      • ノード管理から解放
      • Pod ごとに仮想マシンが作られるように見える
  • CNIプラグイン
  • オートスケーリング
    • Node: Cluster Autoscaler
    • Pod: Horizontal Pod Autoscaler(HPA)
    • K8s 1.11以降
  • ログ集約
    • Fluentd を用いてCloudwatch Logs へ集約
      • audit
      • API Server
      • Authenticator
      • Controller-manager
      • Scheduler
  • ロードマップ

 

## 雑感

今日はKubernetes Meetup Tokyo #29*1があったのでEKSについて勉強してみた。

EKSの説明というよりK8s の説明が結構あった。大抵の企業ではサーバを管理してK8sを運用する価値はないと思うし、K8s自体を選択することも熟考した方がいいと思っている。

そんな中でK8s のエコシステムの恩恵を比較的コストをかけずにできるのがEKS

IAM ベースで管理ができるのもAWSならではの魅力。

EKS on Fargate は前々から界隈では期待されていたことだったが、この前のre;invent*2 で発表されたようなのでアツい。そのあとにネックであった料金も半額*3になりさらに導入の障壁がさがったと言える。

EKSに乗るならマネージドにできる限り寄せる方針で動くと思うのでさらにマネージドに寄せるモチベーションがあると思う。

CloudFormation のスタックとして一回用意してみるのも面白いかなと思った。