Skip to main content

Be Kind with Podman and Cloud Provider Kind!


Geoff Burke
Forum|alt.badge.img+22

KIND, otherwise known as Kubernetes in Docker is a well known testing environment that many people use to get practice on Kubernetes. 

However, with changes to Docker licensing and advancements with Podman I wanted to see if I could run KIND on Podman. It turns out this is not only possible but some of the massive networking headaches when trying to expose applications to your network or even local host have also been effectively solved with Cloud Provider Kind https://github.com/kubernetes-sigs/cloud-provider-kind

Today I will install a Kind cluster and Kasten on my Arch Linux laptop running only podman (not Podman Desktop). I should then be able to leverage ingress in Kasten to access the dashboard.

To install Podman you can find the instructions here: https://podman.io/docs/installation

There is a Kind Arch Linux package https://aur.archlinux.org/packages/kind and for your distribution check the Kind documetation: https://kind.sigs.k8s.io/docs/user/quick-start/

First I will install a single node Kind cluster:

kind create cluster

kind get cluster

The podman provider is still considered experimental.

Check to see if you can access the cluster:

kubectl get nodes

 

Now its time to install the Kind Cloud Provider:

Make sure you have go installed https://go.dev/doc/install

go install sigs.k8s.io/cloud-provider-kind@latest

sudo install ~/go/bin/cloud-provider-kind /usr/local/bin

Since I am running a single node cluster and want the loadbalancer to be able to function on control nodes I need to use this command:

$ kubectl label node kind-control-plane node.kubernetes.io/exclude-from-external-load-balancers-

 

Next I will start the cloud provider in a separate terminal and leave it running. As the instructions state, for windows, MacOs, and in my case with podman we need to add --enable-lb-port-mapping. In podman’s case it is because it can’t assign privileged ports:

cloud-provider-kind -enable-lb-port-mapping

Leave that running in a separate terminal.

----------------------------------------------------------------------------------------------------------------------------------------

Now it is time for Kasten.

You can install the csi-hostpath driver and external snapshotter to leverage Kasten:

https://github.com/kubernetes-csi/external-snapshotter

https://github.com/kubernetes-csi/csi-driver-host-path

 

helm upgrade k10 kasten/k10 --namespace=kasten-io     --reuse-values     --set externalGateway.create=true     --set auth.tokenAuth.enabled=true
kubectl get po -n kasten-io

 

The gateway service is a Loadbalancer but that external IP is not how we will access the Dashboard:

kubectl get svc -n kasten-io

 

Instead we will checkout what podman is doing and the check the last envoy container that was created:

podman ps

 

The kindccm-550b7ea0ff75 container is mapping to port 80

I will inspect it an sure enough I see that it has the Kasten gateway pod’s address there:

podman inspect kindccm-550b7ea0ff75 

 

 

So if I go to port 41987 in my laptop browser I should see:

 

It worked! 

In my next post I will leverage some backups on this new very lean and mean cluster that is using minimal resources. 

2 comments

michaelcade
Forum|alt.badge.img+7
  • Product Strategy
  • 114 comments
  • February 24, 2025

Great post Geoff, I’m a big fan of minikube and their addons.
 

When I was getting started they took that headache of setting up the hostpath csi and snapshotter away. 

then between versions there was a bug with this and then caused project pace of mine to be a little slower which goes against the name of standing up a fast k8 environment. 
 

good reminder to look into that again 


Geoff Burke
Forum|alt.badge.img+22
  • Author
  • Veeam Legend, Veeam Vanguard
  • 1317 comments
  • February 24, 2025
michaelcade wrote:

Great post Geoff, I’m a big fan of minikube and their addons.
 

When I was getting started they took that headache of setting up the hostpath csi and snapshotter away. 

then between versions there was a bug with this and then caused project pace of mine to be a little slower which goes against the name of standing up a fast k8 environment. 
 

good reminder to look into that again 

What I love about this setup is so far it is running great on this lightweight laptop. Mind you I did nuke Windows and installed Arch Linux and then running all sorts of stuff on podman. 


Comment