HOME BLOG

Archive for January, 2022

How to build and deploy application container images with Skaffold and Kaniko

Posted on: January 19th, 2022 by Olu No Comments

Hi folks,

In this post I talk about an interesting way to build your application Docker containers and deploy them into your artifact repository e.g. Artifactory. These tools are useful if you use Kubernetes to orchestrate your container deployment.

You can perform builds using a tool called Skaffold. Skaffold can be used in multiple ways. You can perform your build one-time or you can have Skaffold watch your project and automatically build Docker containers when the code changes. Read more about Skaffold here.

Kaniko is a tool to build container images from a Dockerfile, inside a container or Kubernetes cluster. Kaniko doesn’t depend on a Docker daemon and executes within a Dockerfile completely in userspace. This allows us to easily build container images in environments where it’s not convenient to run a Docker daemon e.g. in a standard Kubernetes cluster. Read more about Kaniko here

Using these two tools together you can have your CI server build and deploy app containers to your artifact repo when certain events occur e.g. when code is merged into your development branch.

That’s all for now. Till next time. Happy software dev.

References

1. Skaffold. https://skaffold.dev/
2. Kaniko. https://github.com/GoogleContainerTools/kaniko

OpenShift

Posted on: January 15th, 2022 by Olu No Comments

Hi folks,

In this post I talke about a very interesting I have only come across recently. It’s called OpenShift Container Platform. It’s an on-premise platform-as-a-service built around Linux containers, orchestrated by Kubernetes on a foundation of Red Hat Enterprise Linux. OpenShift is developer by Red Hat.

It’s an amazing tool that makes it easy to manage your applications if you use Kubernetes to orchestrate your app containers.

It provides a nice web interface that allows you view the various Kubernetes resources for your app like services, pods, stateful sets, etc. It also allows you view logs, terminals, events, metrics, etc. for your various Kubernetes pods. This makes it a lot easier to administer your application and means you don’t have to always resort to CLI tools like kubectl to monitor your application resources.

OpenShift also provides a really nice CLI tool called oc that allows you check on your Kubernetes resources from a terminal. oc is a tool that provides a superset of the functionality of kubectl.

The main difference between OpenShift and vanilla Kubernetes is the concept of build-related artifacts. In OpenShift, such artifacts are first-class Kubernetes resources upon which standard Kubernetes operations can apply.

So, if you plan to use Kubernetes to manage app deployment, I recommend giving OpenShift a shot. That’s all for now. Till next time, happy software development.

References

1. OpenShift. https://en.wikipedia.org/wiki/OpenShift