Skaffold allows us to build, push, and deploy applications into any Kubernetes environment by combining a myriad of tools like Docker, Kaniko, Bazel, jib, Buildpacks, Helm kpt, Kustomize, kubectl, etc.
The setup of a development environment tends to be complicated, time-consuming, and expensive.
Gitpod changes the way we think about development environments. It gives us an IDE to write code, all the tools we need to compile our applications, run tests, and do whatever else we might be doing. It gives us the infrastructure we need. It allows us to onboard anyone into any project instantly.
How do we build container images inside containers running in a Kubernetes cluster? Docker is a bad option since it cannot run inside containers. Using it requires communication to the Docker engine running in cluster nodes. Even if that security concern is not enough, Dockershim is deprecated in Kubernetes 1.20 and will be (or already is) removed from 1.22. That means that alternative container engines like ContainerD will take its place. In other words, using Docker is not even an option anymore.
Kaniko comes to the rescue. It is a tool to build container images from a Dockerfile, inside a container or Kubernetes cluster.