The Bitnami Redis Helm chart has thrown me a curve ball over the last week or so, and made me look at Kubernetes NetworkPolicy resources.
Redis Chart Woes
Bitnami seems to be updating their charts to include default
NetworkPolicy resources. While I don’t mind this, a jaunt through their open issues suggests that it has not been a smooth transition.
redis chart’s initial release of
NetworkPolicy objects broke the metrics container, since the default
NetworkPolicy didn’t add the metrics port to allowed ingress ports.
So I sat on the old chart until the new Redis chart was available.
And now, Connection Timeouts
Once the update was released, I rolled out the new version of Redis. The containers came up, and I didn’t really think twice about it. Until, that is, I decided to do some updates to both my applications and my Kubernetes nodes.
I upgraded some of my internal applications to .Net 8. This caused all of them to restart, and, in the process, get their linkerd-proxy sidecars running. I also started cycling the nodes on my internal cluster. When it came time to call my Unifi IP Manager API to delete an old assigned IP, I got an internal server error.
A quick check of the logs showed that the pod’s Redis connection was failing. Odd, I thought, since most other connections have been working fine, at least through last week.
After a few different Google searches, I came across this section in the Linkerd.io documentation. As it turns out, when you use
NetworkPolicy resources and opaque ports (like Redis), you have to make sure that Linkerd’s inbound port (which defaults to 4143) is also setup in the
Adding the Linkerd port to the
extraIngress section in the Redis Helm chart worked wonders. With that section in place, connectivity was restored and I could go about my maintenance tasks.
NetworkPolicy for all?
Maybe. This is my first exposure to them, so I would like to understand how they operate and what best practices are for such things. In the meantime, I’ll be a little more wary when I see
NetworkPolicy resources pop up in external charts.