unguard
unguard copied to clipboard
Reduce container image size
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