RSSAmplifier

Blog

Marcus Noble

The blog of Marcus Noble, self-described tinkerer, platform engineer and all round average guy!

marcusnoble.co.ukRSS feed ↗20 posts

Latest posts

KubeCon EU Amsterdam 2026 - My Guide to Managing the Chaos

Changelog 2026-03-20: Added note about Maintainer Summit sold out Added Kubernetes Contribution 101 Added link to Vlad Mocanu post With KubeCon just 1 week away I thought it would be good to share some of my tips and suggestions on how to make the most of the week without burning out. I've been to a few KubeCon's now, both EU and US, and I’ve learned a lot about how to make the most of the week…

Investigating and fixing "StopPodSandbox from runtime service failed" Kubelet errors

For months now (maybe years, who knows 🤷) I've had the following error sprinkled throughout my Kubelet logs across multiple of my worker nodes: StopPodSandbox from runtime service failed: rpc error: code = Unknown desc = failed to destroy network for sandbox "055b221e44a28ce8d9120f771d5e1ef201f2457ce49c58999a0147104cca2708": failed to get network "cbr0" cached result: decoding version from…

My tips on giving technical talks

Changelog 2025-05-10: Added advice from Josh Clark 2025-05-03: Added some advice from Lobste.rs comments 2025-05-03: Added advice from Aaron Patterson about repeating questions back 2025-05-01: Added advice from Márk Sági-Kazár 2025-05-01: Added suggestion from Oriel about going to the toilet before speaking. I've been giving talks at meetups and conferences for a few years now. I started off…

Building Social Media Bots With Node-RED

I run several bots that post to social media and the number seems to keep growing. I've had a few people in the past ask me how I run them so I thought I'd finally get around to writing down how I manage it by leveraging Node-RED . Intro to the bots Before getting into the details, lets take a little look at what bots I actually run. Blog posts - Whenever I publish a new blog post I automatically…

Posting to LinkedIn via the API

I have a habit of automating as much of my life as I can. As part of that I have some small automations that handle posting to social media automatically when I publish a new blog post. (More on this in a future post). In the past this was Twitter but that is dead so these days I post to my Mastodon and Bluesky accounts automatically whenever a new blog post is available on my website. Maybe…

Announcing Cloud Native Now

Changelog 2025-01-17: Added details about Cloudflare Last week I announced the launch of a new project I've been working on - ✨ Cloud Native Now ✨ - a new monthly newsletter that will provide a roundup of all the happenings in the cloud native world. This newsletter is my attempt at keeping myself, and others, up-to-date on all the latest news, tools and events happening in the cloud native world.…

Bootstrapping a Civo cluster with OpenTofu and Flux

As part of a side project I'm currently working on I needed to spin up a new Kubernetes cluster that I could manage via GitOps. I decided to take this opportunity to take a look at OpenTofu and see how it handles as it's been several years now since I last used Terraform. My plan was to use OpenTofu to scaffold a fairly basic Civo Kubernetes cluster and then use Flux to handle installing workloads…

My Recommended Kubernetes Resources for Newbies

Changelog 2026-05-24: Added blog posts from Adriana Villela 2026-05-23: Added iximiuz Labs, Cloud Native Days and CloudNative.Now 2024-06-24: Added links to video channels DevOpsToolkit, You Choose and Enlightning. Added link to KubeHuddle conference. Recently, a friend of mine asked me what resources I'd recommend to start learning about Kubernetes. He was a victim of the layoffs that seem to be…

My First EMF Camp

Last weekend I finally went to my first ever EMF Camp after wanting to go for 4+ years now. I had a thoroughly good time while I was there and wanted to share my experience to encourage others to go in the future. What is it? For those that don't know, the event is described as "Electromagnetic Field is a non-profit camping festival for those with an inquisitive mind or an interest in making…

Custom Renovate datasource

I'm quite a fan of Renovate for automating my dependancy updates. I've been using it quite extensively - at Giant Swarm , with my personal infrastructure and with k8s.social - to keep things up-to-date in the various Kubernetes clusters I manage. This has been working great for container images and Helm charts, with both being managed via GitOps and Renovate automating the version updates via PRs,…

Migrating Redis data within Kubernetes

I’ve recently been seeing some stability issues with Redis that I have running for the k8s.social Mastodon instances. After looking into it I realised that I had it configured in a master/replica architecture but I wasn’t actually making any use of the replicas as Mastodon was configured to do everything via the master. There’s two things wrong with this - firstly I’m wasting resources by having…

Managing Kubernetes without losing your cool

Changelog 2022-07-15: Added tweet from Ian Coldwater with nsenter example This post is based on a webinar i've previously given where I go through some of my favourite tips for working with Kubernetes clusters all day long. The goal of all of these techniques is to make my life easier and (hopefully) less error prone. I start off with the first 5 tips being applicable to anyone working with…

Restricting cluster-admin Permissions

If you've managed multi-user / multi-tenant Kubernetes clusters then there's a good chance you've come across RBAC (Role-Based Access Control). RBAC provides a strong method of providing permissions to users, groups or service accounts withing a cluster. These permissions can either be cluster-wide, with ClusterRole , or namespace scoped, with Role . Roles can be combined together to build up all…

My Recommended Go Resources

I was recently asked by a collegue at work if there are any resource I recommend with getting familiar with Go. It turned into quite a list so I thought i'd share it with everyone (and hopefully keep updating it) in the hopes that others will find it useful. 📚 Books My favourite book for learning Go is - ✨ The Go Programming Language ✨ by Alan A. A. Donovan & Brian W. Kernighan. This was the book…

Migrating from Docker to Podman

Changelog 2021-09-01: Added note about socket bugfix PR 2021-09-01: Added troubleshooting section about port forwarding bug 2021-09-04: Added note about switching to Podman on Windows 2021-09-04: Added update about port forwarding PR 2021-09-04: Added note about M1 Mac support 2021-09-04: Added volume mount limitation 2021-09-04: Added podman-macos utility Docker has recently announced that Docker…

Job hunting / hiring during a pandemic

Changelog 2021-09-02: Added resources I’ve recently accepted a new job offer and wanted to share a little about my experience job hunting during a global pandemic. Even after more than a year it was clear that some companies still hadn’t adjusted or taken the time to stop and look at the approach they were taking and the effect it had on the interview candidate. Hopefully some of this will be of…

Multicloud Kubernetes

Changelog 2021-08-08: Added latency details I've been using Scaleway's Kapsule managed Kubernetes offering for my personal projects for a while now (this blog is running on it) so I was pretty excited when they announced a new managed Kubernetes offering dubbed Kosmos . What makes Kosmos really interesting is it's sold as a multi-cloud Kubernetes offering. Kubernetes Kosmos is the first-ever…

T.I.L. CLI flag handling in Bash using getopts

I'm not sure how I've never come across this before but while looking through the Scaleway Kosmos multi-cloud init script I dicovered the getopts utility. getopts makes it easier to parse arguments passed to a shell script by defining which letters your script supports. It supports both boolean and string style arguments but only supports single letter flags. (e.g. -h and not --help ) Example…

T.I.L. YAML keys allow for spaces in them

While browsing through some of Frenck's Home Assistant Config for ideas I came across this interesting line of YAML : --- # This handles the loading of my automations # # https://www.home-assistant.io/docs/automation/ # automation: !include ../automations.yaml automation split: !include_dir_list ../automations # <-- I found myself staring at this for a while, followed by searching the Home…

T.I.L. Kubernetes label length

It turns out that label values in Kubernetes have a limit of 63 characters! I discovered this today when none of my nodes seemed to be connecting to the control plane. Eventually discovered the hostname of the node was longer than 63 characters (mainly due to multiple subdomain levels) and so the kubernetes.io/hostname label being automtically added to the node was causing Kubernetes to reject it.…