Here are Oliver's slides: https://go.fzj.de/dcm25-ct-slides
Here's the git repo for the workshop: https://github.com/gdcc/dcm2025-ct-workshop
Because #11477 was merged (just yesterday!) we can also see the tags that @Oliver Bertuch is describing on the preview version of the guides: http://preview.guides.gdcc.io/en/develop/container/app-image.html#supported-image-tags
DCM containerization join URL https://zoom.us/j/94730584115?pwd=LXk5HFsUH7nN9RmO7rbtLhvsLmpkwl.1
Here's the agenda/notes doc I was showing: https://docs.google.com/document/d/1XZymsjj7EcFagjflYvv7Tn3RCGqGipe3XXOw6to4W2c/edit?usp=sharing
Please feel free to add yourself as an attendee if you wish!
Oliver's slides: https://go.fzj.de/dcm25-ct-slides
If you see this error when running kubectl get nodes...
E0610 14:30:30.887453 81631 memcache.go:265] "Unhandled Error" err="couldn't get current server API group list: Get \"http://localhost:8080/api?timeout=32s\": dial tcp [::1]:8080: connect: connection refused"
The connection to the server localhost:8080 was refused - did you specify the right host or port?
... be sure to enable Kubernetes!
Screenshot 2025-06-10 at 2.31.33โฏPM.png
Then it will ask you to install something and restart.
Ok, now I'm getting better results:
% kubectl get nodes
NAME STATUS ROLES AGE VERSION
docker-desktop Ready control-plane 86s v1.32.2
% kubectl get storageclass
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE
hostpath (default) docker.io/hostpath Delete Immediate false 99s
pdurbin@beamish test % kubectl apply -k .
namespace/test created
pdurbin@beamish test % kubectl get namespaces
NAME STATUS AGE
default Active 46m
kube-node-lease Active 46m
kube-public Active 46m
kube-system Active 46m
test Active 86s
pdurbin@beamish test % kubectl delete -k .
namespace "test" deleted
pdurbin@beamish test %
Or just kubectl get ns
(add it back in, obviously; I was just showing how to delete it)
% kubectl get pods -n test
NAME READY STATUS RESTARTS AGE
postgres-0 1/1 Running 0 2m13s
% kubectl config set-context --current --namespace=test
Context "docker-desktop" modified.
pdurbin@beamish test % kubectl get statefulsets.app
NAME READY AGE
postgres 1/1 21s
pdurbin@beamish test % kubectl describe pod postgres-0
Name: postgres-0
Namespace: test
pod has unbound immediate PersistentVolumeClaims is due to the volume not being available
pdurbin@beamish test % kubectl get pvc
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS VOLUMEATTRIBUTESCLASS AGE
postgres-data-postgres-0 Bound pvc-2228f789-5374-4e6d-92e0-5c2fe5be4276 1Gi RWO hostpath <unset> 2m44s
It just took a bit to resolve. All set now:
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Warning FailedScheduling 3m46s default-scheduler 0/1 nodes are available: pod has unbound immediate PersistentVolumeClaims. preemption: 0/1 nodes are available: 1 Preemption is not helpful for scheduling.
Normal Scheduled 3m45s default-scheduler Successfully assigned test/postgres-0 to docker-desktop
Normal Pulled 3m44s kubelet Container image "postgres:16" already present on machine
Normal Created 3m44s kubelet Created container: postgres
Normal Started 3m44s kubelet Started container postgres
pdurbin@beamish test % kubectl logs postgres-0
The files belonging to this database system will be owned by user "postgres".
This user must also own the server process.
...
22 messages were moved here from #containers > meetings by Philip Durbin ๐.
@Philipp Conzett when you asked during the community call yesterday if there was anything to review from @Oliver Bertuch's Kubernetes workshop, I linked you to his slides but I forgot that I also took a few notes, which you can find above.
Last updated: Oct 30 2025 at 05:14 UTC