##はじめに
本記事では、Udemy にて Stephane Maarek 氏 が提供している「Amazon EKS Starter: Docker on AWS EKS with Kubernetes」 について紹介したいと思います。
前回は AWS EKS の利用環境の構築を行いました。今回は、EKS についてより深く学んで行きたいと思います。前回の記事のリンクは下記です。
Amazon EKS Starter: Docker on AWS EKS with Kubernetes 受けてみた①
##EKS in Depth
###EKS Control Plane
EKS についてより深く学ぶ必要があります。
まずは EKS の制御プレーンについて理解しておきましょう。
EKS 制御プレーンは以下の特徴があります。
- EKS Kubernetes の制御プレーンは高可用である
- 他の利用者とシェアすることはない
- AWS コンポーネントで構成されている
- 制御プレーン全体が NLB で覆われている
###EKS Networking - VPC
ネットワークも EKS におけるとても重要な要素です。
次は VPC について紹介していきます。
EKS における VPC 環境では、以下の構成を用意しておく必要があります。
- プライベートサブネット:作成したワーカーノードを収容。CIDR は大きめに作成
- パブリックサブネット:インターネットに向いているロードバランサを配置
- VPC は、ノードが制御プレーンと接続可能にするためにも、DNS ホスト名と DNS Resolution を必ず用意しておく必要があります。
###Security Group
次は、セキュリティグループについてです。
制御プレーンの SG、ワーカーノードの SG は、それぞれ以下の図の様に設定していきます。
設定した SG のインバウンド・アウトバウンドを図に興したものが以下となります。
###EKS Pod Networking
EKS ポッドネットワーキングについて紹介します。
- Amazon VPC CNI プラグイン:それぞれのポッドがVPC内より1つのIPアドレス(ENI)を取得します
- ポッドはEKS クラスターの内外で、同じ IP アドレスを保有することとなります
- サブネットの制限について:
- CIDR / 24 は254 IP しか用意できないため、沢山のポッドを実行するには足りない
- CIDR / 18 は16,384 IP も用意できるため、こちらの方がおすすめ
- EC2 の制限:
- EC2 インスタンスは限定された ENI/IP アドレスしか保有できない
IAM & RBAC Integration in EKS
Kubernetes における IAM と RBAC の統合について紹介していきます。
この2つを合わせて使用することで、特定の IAM ユーザのみ、特定の環境でしか Kubernetes を利用することができません。
具体的な流れは以下となります。
- Kubectl に対して AWS 情報を送信
- kubectl が AWS 情報を IAMサービスと照会して情報を確認
- IAM 情報で問題が無ければ、 RBAC で確認をし、IAM ポリシーに基づいた操作権限を認可
###Load Balancers in EKS
最後に、ロードバランサについてです。EKS では、以下の3つのロードバランサに対応しております。
- Classic Load Balancer
- Network Load Balancer
- Application Load Balancer
EKS はデフォルトで Classic Load Balancer を作成します。指定があった場合は、Network Load balancer を作成します。
ロードバランサの構成については、マニフェストに注釈をつけることでコントロールが可能です。
下記の URL から、Kubernetes で使用する AWS のロードバランサに関する情報を閲覧できます。
ALB Ingress は、EKS team によってサポートされています。ターゲットグループの IP や、インスタンスモードなどをサポートします。
オープンソースの URL は下記です。
##おわりに
EKS 周りの詳細についての紹介は以上となります。
次回より、Kubernetes Dashboard のデプロイの仕方について紹介してまいります