LoginSignup
1
3

More than 3 years have passed since last update.

Amazon EKSのオンラインセミナー受けてみた

Posted at

AWS Black Belt Online Seminar Amazon Elastic Container Service for Kubernetes (Amazon EKS)」の自分向けメモ
EKSって何?......レベルの人向け

何故コンテナなのか

  • パッケージング
  • 配布
  • イミュータブルインフラストラクチャ

上記が人気の理由
1台のサーバーでDockerコンテナを利用するのは簡単だが、サーバーが増えると管理が大変になっていく

Kubernets(K8s)概要

  • 複数ホスト間でのアプリの管理
  • デプロイ、メンテ、スケーリング機能
  • CNCF(Cloud Native Computing Foundation)による管理、推進

できること

  • ホスト管理、スケジューリング
  • コンテナの死活管理
  • オートリカバリ
    • 再起動
    • サービスディスカバリ、ロードバランシング
    • 負荷分散
    • アプリ設定の管理
    • バッチ実行
    • エコシステムとの連携

アーキテクチャ

Workerとplaneで構成される

  • k8s master(Control plane)
    • k8s APIを実行するためのCLIであるkubectl(キューブコントロール)で操作する
  • Worker Node
    • EC2インスタンス群
    • 実行環境

Control plane

  • etcd:3つに分散されたKVS
  • Kubectlからload balancer経由でetcdにアクセスする
  • 構成、管理するのは大変 ⇒ EKSの誕生
    • Worker Nodeを配置するVPCの用意だけでよい

Workloadsリソース

リソースのうち、コンテナ実行に関するリソースは以下

Pods
  • 最小デプロイ単位
  • 1Podに1つのコンテナが基本
  • 1Podに複数コンテナを含むことも可能
    • VolumeやNetworkを共有し、コンテナ間はlocalhostで通信
ReplicaSet
  • Podのレプリカを作成し、Podの数を維持するリソース
  • ロングランニングなPod向け
  • 障害時に別NodeにPodを作成する
Deployment
  • 複数のReplicaSetを作成、管理
  • Podのローリングアップデートやロールバックを実現するためのリソース
    • ローリングアップデート:バージョンアップ時に新バージョンの起動、旧バージョンの停止をする
DeamonSet
  • 選択したノードの組に対して、各ノードにPodを1つ動かすためのリソース
  • fluentdなどログ収集用のノードで利用する
Job
  • 1つ以上のPodを作成し、指定された数のPodが正常に完了するようにコントロールするリソース
  • Podが失敗した場合は新しいPodを作成する
  • CronJob:Jobを時間通りに実行する
Service/Ingressリソース
  • 外部公開する際のリソース
  • Serviceリソース
    • 外部からのアクセスをロードバランシングできる
  • Ingress
    • ALBを公開できる

EKS概要

  • 運用難易度の高いControl planeのマネージドサービスで提供
  • K8sをそのまま動かせる
  • 2018年に東京リージョンで利用可能になった

使い方

  • クラスター作成
  • Worker Node配置
  • アタッチ

事前準備

  • kubectl等のインストール
  • ロール、VPC作成

クラスター作成

  • CLIで作成可能
    • クラスター名
    • ロール指定
    • サブネット指定
    • セキュリティグループ(ENIに適用する)
  • kubeconfigの作成

↑Control plane作成完了

Worker Node配置

  • テンプレートから作成完了
    • インスタンスタイプやEKS最適化AMIを指定可能

Worker Nodeをクラスターに参加させる

  • ファイルをダウンロードし、インスタンスロールを記載し、適用で参加
  • CNI(Container Networking Interface)を利用し、シンプルでセキュアなネットワークの構築が可能

アドオン起動

  • オートスケーリング
    • Worker NodeとPodを考慮する
    • k8s自体は考慮不要
  • Fluentdを用いたログ収集
  • EKS Deployment Pipeline
    • コミットをトリガーにローリングアップデートまで自動化が可能
1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3