Deploying an Amazon EKS Cluster using EKSCTL

Install Kubernetes CLI and eksctl using homebrew.

brew tap weaveworks/tap 
brew install kubernetes-cli kubernetes-helm weaveworks/tap/eksctl

Create a config file for our cluster (replace the region with yours)

cat << EOF > cluster.yaml
apiVersion: eksctl.io/v1alpha5
kind: ClusterConfig

availabilityZones:
  - ap-southeast-2a
  - ap-southeast-2b
  - ap-southeast-2c

metadata:
  name: EKS-Demo-Cluster
  region: ap-southeast-2
  version: "1.14"

cloudWatch:
    clusterLogging:
        enableTypes: ["*"]

managedNodeGroups:
  - name: ng
    instanceType: m5.xlarge
    desiredCapacity: 2
    minSize: 2
    maxSize: 4
    privateNetworking: true
    volumeSize: 100
    iam:
      attachPolicyARNs:
        - arn:aws:iam::aws:policy/AmazonEKSWorkerNodePolicy
        - arn:aws:iam::aws:policy/AmazonEKS_CNI_Policy
      withAddonPolicies:
        imageBuilder: true
        autoScaler: true
        externalDNS: true
        certManager: true
        appMesh: true
        ebs: true
        fsx: true
        efs: true
        albIngress: true
        xRay: true
        cloudWatch: true
EOF

… now deploy the cluster

eksctl create cluster -f cluster.yaml
Expand to see more details about the cluster.yaml parameters