EKS on Fargate
ノードレス Kubernetes が実現できる。
AWS Fargate 上の Amazon EKS を一般公開
Getting Started with AWS Fargate on Amazon EKS
ちょっと触ってみるには eksctl がすごく楽
Fargate Profile というものをクラスタに作成する
Fargate Profile の selector という項目に、Namespace や Label を指定する。指定した selector にマッチする Pod がFargate 上で実行される。
マニフェスト側に変更は必要ない、というのがよい
Fargate が k8s Node になる
Fargate Node と Pod は 1対1
kubectl get node 、 kubectl describe node <node> などで Fargate Node の情報が見える
マネジメントコンソールから見るところ今のところない
ENI が一つ付く
このセキュリティグループを Profile ごとにカスタマイズできると嬉しいが、今のところはサポートしていない
価格は、ECS/Fargate と同じで、つかった vCPU と Mem で決まる。
Pod の Resource Requests に基づいて適切な組み合わせが割り当てられる
この スレッドがわかりやすい
もしくは、このセッション
Youtube | AWS re:Invent 2019: Running Kubernetes Applications on AWS Fargate
小さめの Resource Requests を指定してみたが、 Fargate Node を describe してみると 4GB のメモリが割り当てられており、ちょっとよくわからなかった
アーキテクチャ
https://gyazo.com/90b65c4714e074606f703c097c8b0900
Youtube | AWS re:Invent 2019: AWS Fargate under the hood
https://gyazo.com/dc0544ab588bf7ecdeaf74d7682da8ad
Youtube | AWS re:Invent 2019: Running Kubernetes Applications on AWS Fargate
https://twitter.com/onurfz/status/1201946105384075264?s=20
Fargate Profile を作ると aws-auth ConfigMap にも変更が加わる
code:aws-auth
- rolearn: arn:aws:iam::999999999999:role/YourFargatePodExecutionRole
username: system:node:{{SessionName}}
groups:
- system:bootstrappers
- system:nodes
- system:node-proxier
EKS クラスタには、デフォルトで、CoreDNS がインストールされているが、この Pod ももちろん Fargate で動かせる。
はじめ、Pod を動かしたら、RDS の名前が引けなくて、CoreDNS が動いていないことに気づいた
Fargate Profile を追加して、対象の Namespace を kube-system とかにすればよい
既存の Deployment は更新が必要
同じく、ALB Ingress Controller や External DNS も Fargate でうごかすことはできる
ServiceAccount が IAM Role を引き受けられるようにして、ALB や Route53 の権限を渡す
OIDC Provider
ECS では、Fargate Spot がきたが、EKS ではまだ
ロギングやモニタリングは、サイドカーが基本
Datadog Agent
Monitor Amazon EKS on AWS Fargate with Datadog
EKS on Fargate:virtual-kubelet の違い + Network/LB 周りの調査
https://gyazo.com/0724bf62d12e062f47d6fef300de41b0
https://twitter.com/mumoshu/status/1202133251931832321