Serverless Kubernetes, managed nodes on AWS EKS and so on

EKS cluster components

AWS Fargate + EKS = Serverless worker nodes

Getting started with Fargate on EKS

  1. Create a Fargate Profile in your cluster choosing the private subnets you want (from your cluster VPC)
  2. Specify any number of namespaces you want to run on Fargate
  3. Additionally specify node labels so you can have pods running from the same namespace on different fargate profiles (in different AZs for example) and/or in managed nodes (more about this later).

Best practices

  • Properly plan the size of your pods with kube-resource-report
  • Schedule the working hours so you can avoid unnecessary ‘idle’ costs with kube-downscaler
  • Use HPA to control the number of running replicas (and consequently worker nodes)
  • Use VPA to set the right size for your pod’s resource limits (just two quick tips here, first you need to choose between VPA and HPA for your deployment as they are mutually exclusive for CPU and memory metrics, second for VPA the scheduler will evict your pods if you tell it to automatically adjust the limits for you, this can cause an undesired behaviour if you don’t plan for this beforehand — https://github.com/kubernetes/autoscaler/tree/master/vertical-pod-autoscaler#known-limitations)

The good

The ugly

The bad

AWS Managed Node Groups

Getting started with Managed Node Groups

Best practices

The bad

The good

The ugly

IAM Roles for Service Account

alb-ingress-controller.tf

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
3Bit Technologies

3Bit Technologies

20 Followers

Cloud Specialists providing professional services with DevOps, BigData, Cloud Native Applications and Security. https://www.3bit.com.br/3bit