unguard icon indicating copy to clipboard operation
unguard copied to clipboard

Reduce container image size

Open ammerzon opened this issue 2 years ago • 0 comments

The image sizes that we deploy are too big. With a local cluster, loading them into the cluster already takes minutes. Can this be reduced? Do we possibly include artifacts that are not needed for running the images? Decent blog entry regarding this topic: https://phoenixnap.com/kb/docker-image-size

Definition of Done

  • [ ] The image sizes have a reasonable size by only containing the required artifacts

Tasks

  • [ ] Add a .dockerignore file for each service
  • [ ] Change the base image to alpine (or similar) for each service if possible
  • [ ] Refactor services to multi-stage builds if possible
  • [ ] Research additional ways to reduce container image sizes

Additional context

The biggest images are:

  • Frontend
  • Old load generator (check for the new one as well)
  • User Auth Service
Container image sizes
kubectl get nodes -o json | wsl jq '.items[].status.images[] | .names[0], .sizeBytes / 1000000'
"docker.io/library/vogelgrippe-frontend:76748d88819bf1043abd04305a85e9c5bd74807bb3796d378e9aaf73a6dc639c"
1414.332563
"docker.io/library/vogelgrippe-loadgenerator:486be3b133cbc1bf6498f52a356bca2dc7543f6604ca6e2ca5c1128e67eb6170"
1048.191515
"docker.io/library/vogelgrippe-user-auth- 
service:87fea6e6f7a3c29fd889e4d02622d6b14a336e8b2313a108630653573addfd0f"
1004.448454
"docker.io/library/vogelgrippe-microblog- 
service:18cae169152012fa08a9a8696cfe512460517da28e70c8b273b96a47e28b22de"
155.021079
"k8s.gcr.io/kube-proxy:v1.21.1"
132.714699
"k8s.gcr.io/kube-apiserver:v1.21.1"
126.834637
"k8s.gcr.io/kube-controller-manager:v1.21.1"
121.042741
"docker.io/bitnami/mariadb@sha256:160902dddb9c7d9640dcfc33ae0dbbed9346f786eeb653fa1b427c76f4673126"
111.785125
"docker.io/library/vogelgrippe-proxy-service:d5c4a3fcd82806acd435173a7d43722e1574e767e3d9c2960bdf9d42898e6842"
111.259472
"k8s.gcr.io/etcd:3.4.13-0"
86.742272
"docker.io/kindest/kindnetd:v20210326-1e038dc5"
53.960776
"k8s.gcr.io/kube-scheduler:v1.21.1"
51.865396
"docker.io/library/redis@sha256:ea4742e41642653510c0a81141d2cfc1ced18362a23a7b4fec66c739548b3de0"
35.931553
"k8s.gcr.io/build-image/debian-base:v2.1.0"
21.086532
"docker.io/rancher/local-path-provisioner:v0.0.14"
13.367922
"k8s.gcr.io/coredns/coredns:v1.8.0"
12.945155
"docker.io/curlimages/curl@sha256:6e0a786e3e5181df00eaf3a0a1749c18a6bb20b01c9bd192ea72176ce8a1c94b"
3.993754
"k8s.gcr.io/pause:3.5"
0.301416

ammerzon avatar Jan 05 '23 16:01 ammerzon