Advanced Kubernetes Networking with Multus (It's easier than you think)

preview_player
Показать описание
I just discovered Multus and it fixed Kubernetes networking! In this video we cover a lot of Kubernetes networking topics from beginner topics like CNIs, to advanced topics like adding Multus for more traditional networking within Kubernetes - which fixes a lot of problems you see with Kubernetes networking. Also, I had to turn the nerd up to 11 on this one.

(Affiliate links may be included in this description. I may receive a small commission at no cost to you.)

00:00 - What is Multus and what does it do?
02:16 - What are CNIs in Kubernetes?
02:59 - Kubernetes Networking Basics
05:56 - Networking to and from the Clusters
07:28 - How Multus Solves Networking Challenges Kubernetes Can't
08:45 - Our Multus Approach
09:55 - Multus Modes Explained
11:39 - Kubernetes Working Machines Configuration
15:08 - Installing Multus
16:42 - Multus Network Attachment Definitions Explained
21:01 - Multus Pod Annotations
24:33 - Creating the Pod
25:54 - Inspecting the Pod from the inside
28:14 - Home Assistant: A real workload
31:38 - Current state: Visualized
32:18 - Testing connectivity and DNS inside of Pod
34:23 - Home Assistant Network Settings
35:41 - THANK YOU to the COMMUNITY!

Thank you for watching!
Рекомендации по теме
Комментарии
Автор

One thing that I forgot to mention is this video - If you do plan on doing this with Home Assistant, you can finally turn off host mode or hostNetwork on the pod 🚀

TechnoTim
Автор

As always, wonderful, top tier video. Kubernetes networking has been tough for me. One topic I think would be amazing is something like Crowdsec in Kubernetes alongside HA Traefik. It has been such a pain getting it working and the entire plugin area of Traefik hasn't been covered much. I feel like you are the perfect person for a video around this.

epochphilosophy
Автор

Nice video! I heard about Multus several times before but it seemed much too complicated so I never bothered to look into it.
This video is kinda perfect to learn the basics.

danilfun
Автор

The first time I saw Multus, I thought, 'Oh, too complicated, nevermind.' But after watching your video, it was so easy to set up, and now I can run Home Assistant the way I want to, with everything working fine. Love your videos, and again, thank you.

antiman
Автор

great breakdown. and the almost exasperated feeling while trying to wrap your head around all the layers is very relatable 😅

victorse
Автор

Great walkthrough Tim! Home Assistant discovery is a perfect use case for Multus -- and not having to enable hostNetwork and disable PSA for the namespace is a great perk as well.

I considered using Multus when setting up Rook Ceph on my homelab cluster (performance benefits IIRC), but ultimately I opted to keep it simple. Perhaps I need to give it another look as I also happen to run HA on a RPi to avoid this very problem.

Quick question: If you were to remove VLANs from the equation, would creating a second NIC on each worker node be necessary?

Thanks!

themarshallford
Автор

I use a mix of Cilium, Multus, and OVS-CNI, which allows me to deploy student labs while re-using certain IP addresses for those labs' targets. I'm thinking that the OVS-CNI would simplify some of the issues that you have with interfacing with external addresses. The "gotcha" with OVS-CNI is that you create/manage/delete the virtual switches externally (not via K8S).

That said, I plan on mixing in your solution too. Thanks!

packetgeek
Автор

Thanks for making this video. I've always wondered how Multus worked and this made it super clear. Thanks Tim.

Demodude
Автор

Well done! A fantastic video, once again you take a complex subject and break it down into an easy to digest video.

Jaabaa_Prime
Автор

Holy crap! It worked, my HA can see my devices on my LAN. You really should put home assistant in your video title & blog!

jasjeetsuri
Автор

The video that I needed last summer! time to rethink my cluster 😅

manutech
Автор

Hey Tim if you taught a k3s workshop that would be awesome, I just havent found a reason to add a kubernetes cluster to network and would love to learn and you seem to be the best at explaining things compared to anyone else!

welchbop
Автор

I had a macvlan set up with multus for a long time and it didn't work. I now did it as you with ipvlan and it works 😮. Everything you share is always appreciated, even if you replace it with macvlan etc... You really do an amazing job 😍
P.S.: but did you have HASS with host networking until today? I never tried that as I thought it was not compatible with a reverse proxy

Jakt
Автор

Been wanting to do exactly this for awhile for the same reason… cool video

dronenb
Автор

Great video! You really laid everything out VERY logical. Thank You!

GregoryBrettin
Автор

Hi, Tim. Is the significant difference in ping times between your 3 tests at around 32:40 due to colo/home vs colo/colo (or home/home)? I’m hoping it’s this, and not Multus introducing that much additional latency.

This also got me thinking that for any solution that sits partially at home and the other side either in a colo or cloud provider, we need to be careful setting up networking across these environments, not just from a security perspective but also cost if you are being charged for network bandwidth by the colo or cloud provider.

AlGordon
Автор

How does this work for something with multiple pod replicas? Is it something that only works when you have a single pod in a deployment? Assuming in theory say, you could run Home Assistant with multiple pods for example.

law
Автор

So I followed all the steps in the video; but I did have to assign the IPV4 address manually since I wasn't getting one. When I get to the point of verifying that the IP has been assigned to the pod, it doesn't show up. Any ideas?

alanturnage
Автор

Awesome video. Thanks for your content, always very informative.

MrNevado
Автор

Great video! I`d like to use this concept to network several KubeVirt VMs on different Talos OS bare metal Kubernetes nodes, that require fixed IP addresses. My problem is that each physical node has just one ethernet port connected to a 2.5Gb switch. I’d like to use different VLAN ids on that one ethernet port to differentiate what you did by assigning a second nic to your node in proxmox. I have Flanel and Multus on those Talos nodes. Flanel already connects to the physical eth port. Multus should connect to a VLAN on that same eth port. Could this possibly be feasable?

chriwas