'AWS EKS "0/3 nodes are available: 3 Too many pods" Error

I have 3 node group t3a.micro and I installed ebs csi provider and storage-class.

I want deploy statefulset on mysql this is my manifest

apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: mysql-statefulset
spec:
  serviceName: mysql-service
  replicas: 1
  selector:
    matchLabels:
      app: mysql-pod
  template:
    metadata:
      labels:   
        app: mysql-pod
    spec:
      containers:
      - name: mysql
        image: mysql
        ports:
        - containerPort: 3306
        volumeMounts:
        - name: pvc-test
          mountPath: /var/lib/mysql
  volumeClaimTemplates:
  - metadata:
      name: pvc-test
    spec:
      storageClassName: gp2-retain
      accessModes: [ "ReadWriteOnce" ] 
      resources:
        requests:
          storage: 1Gi

Warning FailedScheduling 20s (x16 over 20m) default-scheduler 0/3 nodes are available: 3 Too many pods.



Solution 1:[1]

As mentioned in AWS EKS - Only 2 pod can be launched - Too many pods error

According to https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html#AvailableIpPerENI, t3a.micro type has

Maximum network interfaces: 2
Private IPv4 addresses per interface: 2 
IPv6 addresses per interface: 2

But EKS deploys DaemonSets for e.g. CoreDNS and kube-proxy, so some IP addresses on each node is already allocated.

Possible fix is just upgrade your instance to be a more capable type.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 keypoint