1日1%成長する ~Amazon Elastic Container Service for Kubernetes (Amazon EKS)~
AWSの学習メモ
- AWSのblackbaltの動画を15分以上毎日見る
- AWS Amazon Elastic Container Service for Kubernetes (Amazon EKS)
- https://www.youtube.com/watch?v=7_ZFvSYeOeE&list=PLzWGOASvSx6FIwIC2X1nObr1KcMCBBlqY&index=14
- 動画を簡単にまとめる
Amazon Elastic Container Service for Kubernetes (Amazon EKS) コンテナ関連サービス レジストリ:ECR コントロールプレーン:ECS、EKS データプレーン:EC2、Fargate Kubernets(K8s)概要 - 複数のホスト間でコンテナ化されたアプリケーションを管理するOSS - デプロイ、メンテナンス、スケーリングを提供 - Cloud Native Computing Foundation(CNCF)で管理 Kubernetsで実現できること - ホスト管理、スケジューリング - コンテナ死活監視、オートリカバリー - サービスディスカバリーやロードバランシングで分散処理 - シークレット(パスワード)やアプリケーション設定管理 - バッチ実行とか アーキテクチャ Kubectl => k8s master - WorkerNode(複数) Kubectl k8s APIを実行するためのCI Workloadsリソース - Pod - ReplicaSet - Deployment - DeamonSet - Job - CronJob - StatefuleSet Pods - 作成、スケジュール管理できる最小のデプロイ可能な単位 - シンプルなユースケースだと1pod=1コンテナとか - 同じPod内のコンテナはVolumeやNetworkを共有 - Pod内のコンテナはlocalhostで通信 ReplicaSet - Podのレプリカを作成してPodを指定した数を維持 - longrun向け - WorkerNode障害時には指定されたPodの数を維持するために別のNodeにPod作成を行う Deployment - 複数のReplicaSetを管理「Deployment -> ReplicaSet -> Pod」 DeamonSet - 選択したノード組に対して各ノードにPodを1つ動かすためのリソース - 1台のWorkderNodeに複数づつPodを配置することはできない - ユースケース - 各WorkerNodeで動かすログ収集用のdeamon(fluentdなど) - 各WorkerNodeで動かすモニタリング用のdeamon Job - 1つ以上のPodを作成し、指定された数のPodが正常に完了するようなコントロール - JobとReplicaSetの違い - ReplicaSetはロングラン向け - Jobは終了が予想されるPod向け Service/Ingress コンテナを公開するときにする Service - Podの論理セットとアクセスするためのポリシーを定義 - コンテナに対してトラフィックを流すことができる(L4ロードバランサー) - ServiceにIPアドレスを割り当てることも可能(バランサっぽい感じ) Ingress - コンテナに対しトラフィックを流すことができる(L7ロードバランサー) - AWS ALB Ingressコントローラー:AWSがサポート - IngressリソースとしてALBを活用可能 - ホスト名またはパスによるコンテントベースルーティング、L7の負荷分散