Mender k8s install on AWS

Here are the serial annoyances I experienced, and formula I used, for getting Mender 3.4.0 running on a Kubernetes instance on AWS.

I used eksctl to create a cluster on AWS. Then I followed the instructions at Setting up the LB controller :: Amazon EKS Workshop for installing the aws-load-balancer-controller, which is necessary for allowing an AWS application load balancer to be instanced from within k8s.

From there, I followed the instructions at Production installation with Kubernetes | Mender documentation until it came time to create the mender ingress.

Then I created a certificate using AWS Certificate Manager to apply to the Mender subdomain I was hosting. The application load balancer will need to reference that certificate during its construction.

Here is the yaml file I used to create an ingress compatible with Mender, replacing aws-account-number and certificate-uuid accordingly:

kind: Ingress
  name: mender-ingress
  annotations: internet-facing ip arn:aws:acm:us-west-2:[aws-account-number]:certificate/[aws-certificate-uuid] '[{"HTTP":80},{"HTTPS":443}]' '443' '{"Type": "redirect", "RedirectConfig": { "Protocol": "HTTPS", "Port": "443", "StatusCode": "HTTP_301"}}'
  ingressClassName: alb
  - host: mender.[yourhostingdomain].com
      - path: /
        pathType: Prefix
            name: mender-api-gateway
              number: 80


kubectl apply -f the-above-yaml-file

to create the Mender ingress on AWS.

Hope this helps save some time for others trying to get Mender running on AWS and k8s.

1 Like