Thanks for this. MetalLB is perfect for home / lab use. All the demos on kubernetes show you how to use ingress controllers but assume you're on a cloud provider, thanks for showing us the bare metal version , works great! Great video.
You're a lifesaver man. I've been struggling to config my client's baremetal cluster with ingress controller and cert manager. I follow the instructions on this and the next video, now the cluster is finally finished. Thank you once again.
@@justmeandopensource yes metallb is up and running but I still have no idea how to integrate it into my cluster for HA. My setup is looking for a proxy to connect to on port 6443.
Thanks for this quick and thorough intro into MetalLB, actually got it running like you did and this solved some mysteries for me about networking load-balancing for k8s. Cheers!
love you dear very easy and smoothly understand the things i have many try to understand the things but when i reach on yours videos my all things are cleared
Thank you. The config has changed as of v1.25 for client and server. They now show 1 metallb.yaml and 2 configs for ipaddresspool where you define the pool then l2advertisement where you publish the pool by name. I taught myself 6502 assembly on the Apple II when I was 10 and have been going ever since. I appreciate your verifying each step so I can make sure everything is as expected. Even with lots of experience, this is a complicated system to grok. Most importantly, I learned about figlet and neofetch. ;) Hackers of the world, unite!
Do we need to add ConfigMap separately if metallb installed using helm. I have done helm metallb installed and added ipaddresspool and l2advertisement only
Amazing video, thanks for that. Let me ask smth. You've used a range of 10 IPs on the Metal LB configuration, this means that if I expose more than 10 services I need more IPs on the configuration?
Thanks for this one another great video - I was planning on giving MetalLB a try after seeing earlier video and have now run through it. I had to edit the kube-proxy config map to add the true entry for ARP. Had to do a bit of a Google to work out if that config automatically got applied, seems it doesn't and wasn't sure what method to use so deleted the individual kube-proxy pods and let K8s recreate them again presumably using the new config. It worked anyway :) I'm hoping to combine this with the NGINX ingress, using LB to expose the Ingress next - (hint for another video ;) Thanks again.
Hi, many thanks for watching. Hope you are having great time with this setup and exploring further. I don't have enough time to dive deep into each of the topic.
HI Miki, thanks for watching. Imagepullbackoff is usually because the node can't pull the image due to some networking issue or the image doesn't exist or the tag you are using for the image doesn't exist or if you are pulling from a private registry, the credentials doesn't work. Do a kubectl describe pod and see events section in the output. You might get a clue.
I have set up the Metal lB in aws ec2-instanse(redhat 8) and external ip also came , but it does not expose the application in outside using that external ip and added the ports in security group as well . could you please help me how to resolve that issue
It has been stated in the official Metallb documentation that it is not supported in AWS. MetalLB can hand out IP address from the range you have configured without any issues but the networking won't work in the cloud.
Thanks for replay .I have watched your kubernetes videos and helped me a lot . Apart from cloud where we can easily setup the kubernetes ,metal lb and ingress?
I have followed your video to the very point...got everything running, thanks for sharing your knowledge. However, I've got some issues accesing the nginx outside the kubernetes, meaning, when i'm setting up the cluster and nginx, i'm on the server via ssh session.The app is deployed, exposed however from my machine (the same network) is the assigned external-ip inaccessible. Can you point me to the right direction ? Thanks.
1:50 Is there anyway we can map a know IP address here. Let's say I use a DNS provider and I have 2 IP addresses allocated to me, is there anyway I can use those IP's instead of having to setup a Bare metal LB?
Thank you so very much! That was very clear. Do you have a video on how to install calico on the same setup? I want to use the configuration that is not the basic and offers the inscription? I am using ubuntu 20.04 help please?
Hi Ahmed, I used calico in my environment. Once you provisioned your kubernetes control plane, its just a matter of applying calico manifest as their documentation says. I am not sure if you are aware of my vagrant provisioning script. ruclips.net/video/AoEWX84h_ig/видео.html I used Ubuntu 20.04 VMs and kubeadm method to provision cluster and calico on top of it.
Thanks for the video 👍, can you do a video on harness. Can be used to deploy in kubernetes cluster and also helm can be integrated.please look in to it.
Hi Raghu, thanks for watching. I will certainly add it to my list. I have lot other topics in the pipeline requested by viewers that I have to go through in order. Cheers.
First of all, thank you for all your life saving videos! Just wanna ask if you have a video as well on how you set up the machine containers you used for this cluster? thanks and more power!
Hi Joakim, thanks for watching. Yes I have that in my list for so long. But I need Windows server license to try that. I will give it a try soon though.
@Just me and Opensource, how can we set up metallb on macOs ? though the steps mentioned here creates the External IP for service, the network issue with Docker and Mac/Windows is causing the issues.
Hi Venkat Thanks for the video!. I have one issue. i cannot a able to access the external ip (Load Balancer) assigned for ngnix service outside of the VM centos 7 .(i.e like type node port) i cannot able to access this IP in chrome browser outside the VM. But inside the VM i can access using wget and curl. Can you please guide me this?
Hi, i’m a newbie. I have a question if I using a VPS server. And i have a public vps ip to access it. I must use vps public ip and port to access it right?
Hi sir, Thank you for this excellent content. I was able to install MetalLB on my bare metal k8s cluster successfully and expose a Load Balancer service. I can also access my spring boot using external ip and port number from my browser on my localhost machine. But however when I try to access the load balancer external ip from outside my home internet network, I cannot reach my application. Could you please let me know on what should I do to make my app accessible world wide?
Hi Thanks for watching. My setup is on an Arch Linux with I3 Tiling Window manager and Zsh shell with zsh-autosuggestions and zsh-syntax-highlighting plugin. I have done some videos on I3 which mimic my desktop setup and uses Ansible to do the configuration and setup automatically. Hope it still works. ruclips.net/p/PL34sAs7_26wOgqJAHey16337dkqahonNX
If I have 3 vm with virtualbox, is there a posibility to open the external link in the browser of the host? Or it is possibly only un kmaster vm? Thank you!
I'm testing a k8s cluster with nginx ingress controller. i use another vm with haproxy to route traffic to worker nodes 80/443. Is metal LB the way to allow the same IP but with additional ports instead of 80/443?
Hey Venkat, Thanks for the video. It's really very helpful. I Just got one problem while practicing this tutorial. while doing w3m . I am getting an error like "w3m: Can't load ". Could you please help me out with this. Thanks in advance
Another awesome video :) Thank you for the clear explanation. Could anyone please let me know which ssh terminal is being used in this session that auto-populates the commands as well.
Hi Sonali, thanks for watching. I used Zsh with zsh-autosuggestions plugin on my linux workstation. I did a quick demo of my terminal setup in this video. ruclips.net/video/PUWnCbr9cN8/видео.html Cheers.
This is a very good walkthrough. On the first time around, I was able to get metallb running smoothly thanks to your video with the documentation provided by MetalLB, however upon attempting to do the same thing on another cluster (4 node, bare metal, different range of IPs on these machines), I am not able to gain access once the service exposes nginx. I used sipcalc on the master node in my cluster and then used the last ten ip's in the range that it provided. I'm not sure if I'm doing things wrong here, do you have any advice on where to look for the usable range?
My kubernetes nodes have a wide variety of IP addresses, and they are not consecutive or close to one another. How does this affect the way I can assign IP addresses to it?
@@sammcooley I have noticed it sometimes but can't explain the behaviour. But majority of the times it works as expected. I have noticed this especially when running kubernetes clusters in docker containers where I don't control the ip assignment of the kubernetes nodes. But in my vagrant environment (172.16.16.0/24 network), i use the range 172.16.16.240-172.16.16250 as the metallb range and it works consistently.
@@justmeandopensource I've managed to get it going by choosing a much wider range of assignable IPs. One question for you: the created loadbalancer service (by using imperative expose command), what's the best way to get SSL for the loadbalancer IP?
@@sammcooley You can achieve that with Lets encrypt and Ingress. May be you can watch my recently released Traefik v2 video series, where the third video is all about SSL (with MetalLB). ruclips.net/p/PL34sAs7_26wNldKrBBY_uagluNKC9cCak
Hi Very nice tutorials.. I have a requirement that i wanted to setup the kubernetes cluster in cloud with self managed to simulate on-prem now if we required load balancer which IP range i can provide here ? Private IPs are managed by Cloud Provider digital ocean.
Hi, thanks for watching. MetalLB is purely for on-prem setups where you control the network range. It won't work in the cloud. I haven't tried, but you could take a look at kube-vip project.
Hi, its a very nice video, I created my cluster using "KinD" on My Laptop (along with Docker for Desktop on windows) and followed the instructions to create Metallb and its configmap but the external-ip for the ingress service was still showing . Can you confirm if this video is applicable for KinD environment as well ? My requirement is I need to create a multi-node cluster with the ingress service installed and want to assign a DNS to the ingress. Please let me know how to achieve it, Many thanks..
How can we make sure that the router does not over write these ? Can you please explain it in a scenario where we are a home user running behind simple router and we have say 3 node cluster and an ip range where dhcp is handled by router
Hi, thanks for the video! I have one question, are you able to ICMP ping the LoadBalancer IP addresses after they are assigned to the service? Like in your example 172.16.16.240/241? For me everything is working as I am able to see the default nginx page with curl/browser, but when I tried to ping, I am receiving something like: # ping 172.16.16.240 PING 172.16.16.240 (172.16.16.240) 56(84) bytes of data. From 172.16.16.102: icmp_seq=2 Redirect Host(New nexthop: 172.16.16.240) Thanks!
Hi, thanks for watching. You won't be able to ping that load balancer IP which is expected and by design. Same is the case for any service with Cluster IP.
Thank you for doing this, its is very useful I'm learning kubernetes based on your tutorial. I have a problem in my setup. We have a VM from CtrlS VM service provider. Only master node. Installed kubernetes which is going file. installed metallb as per this tutorial it seems fine, metlallb is assigning external ip but when I try to access that ip using curl says no route to host ping says Destination host unreachable Could you help me out please?
HI Sharath, thanks for watching. In order to use Metallb, you have to have the control of the network. The metallb ip range you specify must be part of the network where you have the kubernetes nodes. What is your kubernetes master IP and what range you specified in metallb config?
Hello, I'm currently learning kubernetes and planning to migrate my home media server from docker compose to k8s. I will use metallb to expose my traefik load balancer. I want to know if metallb will preserve that IP address on deployment restart. Because I will port forward my port 80 and 443 to the internet, technically I just portforward that port to the IP address from metallb right? If I restart my traefik deployment, I will get the same IP address? Because it will be very weird if I need to keep modifying my router portforward 😅
Hi, thanks for watching. Basically you are not changing the service and only changing the deployment by redeploying it. The service will remain the same and you will continue to use the same load balancer IP. If you delete and recreate the service you may get a different ip address.
@@justmeandopensource Oh got it thank you 😊 If I don't delete the service, but maybe I edit / update the service, will Kubernetes be smart enough to recreate it with the same address?
@@justmeandopensource I don't know actually, just wondering 😝. Because I'm still waiting for my parts for the proxmox machine that I'll be using for k8s (so I'm basically still in near zero experience). As I said before, I'm just in planning mode and there are so many questions that I've got. Sorry for asking stupid questions 😅
Hi, I just did a deployment on my baremetal server using the tutorial. The difference is that I am using IPV6 addresses.IPV6 address assignment went through well. I am able to ping the external IPV6 assigned for the app from all the nodes and externally too. however, I am not able to access the IPV6:80 port using curl command from anywhere except the node on which the docker container actually running. For example, for node1 and node2 if my pod was deployed on node2, I am able to ping the app from node1 and node2 and externally too but curl -I ipv6:80 works only from node2 and nowhere else.. I dont have any firewall rules.
Firstly, try with square brackets around ipv6 address if you are using curl. Secondly ensure you are using global ipv6 address. Ifconfig in your system would reveal global or local.
1. hi venkat..your videos are awsome.i have a query..I created 3 vms in aws cloud and installed kubernetes cluster with calico network...I tried to create a nginx deployment and expose it as type Loadbalancer then the status is showing pending for loadbalancer ip...cloud provider not provided loadbalancer ip. then i installed mettalb in that cluster...the problem is that metallb takes only private ips from the pool of ips in the subnet...is there any way to get public ip for the loadbalancer for getting accessed anywhere from internet.... 2. in dns entry it is not possible to map private ip to the url any alternate to metallb which provides public ip 3. or else how to access get external ip for loadbalancer in onpremise kubernetes cluster so that it can map to dns entry and access anywhere...
ok. I have installed metal lb in 10.3 it was not working. then downgraded to 9.6 worked. but not assigned external ip. after several hours i give up on metallb completely and go with trafiek alone using cluster ips i hope.
Dear Venkat, thank you for all your videos, github I notice your use the Virtualbox vboxnet0 as a private DHCP server on 172.16.16.0/24 to provide IPs to cluster nodes, metallb and nginx deployments I am using Ubuntu server 20.04 to follow this video and the default config after Virtualbox installation for vboxnet0 DHCP is 192.168.56.0/24 but the host-only interface vboxnet0 was not created and can not see on: ip a s I do this: VBoxManage hostonlyif create VBoxManage hostonlyif ipconfig vboxnet0 --ip 172.16.16.1 VBoxManage dhcpserver modify --ifname vboxnet0 --ip 172.16.16.1 --netmask 255.255.255.0 --lowerip 172.16.16.2 --upperip 172.16.16.254 VBoxManage dhcpserver modify --ifname vboxnet0 --enable Check changes with: VBoxManage list dhcpservers VBoxManage list hostonlyifs Cheers
Hi Oscar, thanks for watching. You don't have to create the 172.16.16.1/24 network yourself for VirtualBox. When you start the environment with my vagrant setup, the network will automatically be created.
Sure can :) you might have to rescale the pods for it to take affect ;) ( kubectl scale -n metallb-system deploy *the name* --replicas=0 ) Or just delete the pods :P
Hi, thanks for watching. Not sure where you read about configmap not being supported. I have tried this method recently and found working flawlessly. Cheers.
Thanks for this. MetalLB is perfect for home / lab use. All the demos on kubernetes show you how to use ingress controllers but assume you're on a cloud provider, thanks for showing us the bare metal version , works great! Great video.
Hi Matt, Thanks for watching.
MetalLB is also very suitable for production based cluster too.
@@premierde Can you please explain me how?
You're a lifesaver man.
I've been struggling to config my client's baremetal cluster with ingress controller and cert manager. I follow the instructions on this and the next video, now the cluster is finally finished. Thank you once again.
Hi Diffa, thanks for watching and I am so glad that it helped you. Cheers.
any video for this ? ingress controller and cert manager
@@hippolyteasah4341 cert-manager video is here ruclips.net/video/Hwqm1D2EfFU/видео.html
Wow, nice. Metallb up and running from scratch in 15 minutes! Thanks heaps!
Thanks for watching. Glad it was helpful.
Was looking for easy solution for Rancher 2.5.8. Works perfect. Good explanation. Go on!
Thanks for watching Michael. Cheers.
Well done. I had no success wil Metallb before watching this video. Thank You !
Hi Jim, thanks for watching.
@@justmeandopensource yes metallb is up and running but I still have no idea how to integrate it into my cluster for HA. My setup is looking for a proxy to connect to on port 6443.
3 days of sweating ballz finally got it working after watching this video. Thank you!
Thanks for this quick and thorough intro into MetalLB, actually got it running like you did and this solved some mysteries for me about networking load-balancing for k8s. Cheers!
Thanks for watching.
i realize I am kinda off topic but do anyone know of a good place to watch new tv shows online ?
@Cain Jad Flixportal =)
@Matias Trevor thank you, I signed up and it seems to work :) I really appreciate it!!
@Cain Jad Glad I could help =)
love you dear very easy and smoothly understand the things
i have many try to understand the things but
when i reach on yours videos my all things are cleared
Hi Fareed, thanks for watching and I am so glad to hear that you found it useful. Cheers.
Thank you. The config has changed as of v1.25 for client and server. They now show 1 metallb.yaml and 2 configs for ipaddresspool where you define the pool then l2advertisement where you publish the pool by name. I taught myself 6502 assembly on the Apple II when I was 10 and have been going ever since. I appreciate your verifying each step so I can make sure everything is as expected. Even with lots of experience, this is a complicated system to grok. Most importantly, I learned about figlet and neofetch. ;) Hackers of the world, unite!
Haha. I am glad that you liked it and found something useful. Thanks for watching. Cheers.
Do we need to add ConfigMap separately if metallb installed using helm. I have done helm metallb installed and added ipaddresspool and l2advertisement only
best video in entire youtube for metallb i.e. on premise load balancer thanq for your efforts.
Hi Praveen, Thanks for watching.
Hello from Brazil. That is the best video I've watched for onpremise kubernetes. Keep the good work.
Hi, thanks for watching. Cheers.
I just started with this video, and I'm an instant subscriber! It looks like you have some great stuff. Thank you!
Hi Tony, many thanks for watching and subscribing. Much appreciated.
Thank you for doing this one!! I have been using metallb for awhile and love it :)
Me too. Thanks for watching.
Hello from india. This is awesome channel for k8s. Keep up the good work
Hi, thanks for watching. Cheers.
best video ever as always from you ! well done
Hi, Thanks for watching.
Thanks a ton! really helped me out here and subscribed!
Thanks a lot! Great explanation!
Thanks for watching.
Another beautiful explanation. Thank you very much, mate :)
Hi Tarlan, many thanks for watching. Cheers.
that was pretty cool; thank you
Hi, thanks for watching.
That is really helpful.. excellent work
Thanks for watching.
You are so great
Hi Kelvin, Thanks for watching.
Thanks for the real good tutorial !!
Hi Mingwei, thank for watching. Cheers.
Excellent video!
Hi thanks for watching.
Awesome tutorial... Excellent.
Hi Abhishek, Thanks for watching.
Super necessary! Thank you.
Hi Jeremie, thanks for watching.
Thanks for this great video.
Thanks for watching.
It made my day ! Cheers
Hi Jean, glad to hear that. Cheers.
Thanks Anna for sipcalc and w3m also for video 🙏
Hi Antony, thanks for watching.
Just WOW! Thank you!
Thanks for watching Alex.
Amazing video, thanks for that. Let me ask smth. You've used a range of 10 IPs on the Metal LB configuration, this means that if I expose more than 10 services I need more IPs on the configuration?
Hi Rhuan, thanks for watching.
Yes depending on the number of services, you need to allocate segment of your network to it.
Another working tutorial from k8s master. :-)
Hi Mo, many thanks for watching. Cheers.
Thanks for this one another great video - I was planning on giving MetalLB a try after seeing earlier video and have now run through it. I had to edit the kube-proxy config map to add the true entry for ARP. Had to do a bit of a Google to work out if that config automatically got applied, seems it doesn't and wasn't sure what method to use so deleted the individual kube-proxy pods and let K8s recreate them again presumably using the new config. It worked anyway :) I'm hoping to combine this with the NGINX ingress, using LB to expose the Ingress next - (hint for another video ;) Thanks again.
Hi, many thanks for watching. Hope you are having great time with this setup and exploring further. I don't have enough time to dive deep into each of the topic.
Hello, thank you for the Great Video. I have a question, what Terminal with suggested cli completion are you running?
nice video, clear and consistent... any propose solution for the error
pod/speaker-5kn4b 0/1 ImagePullBackOff
HI Miki, thanks for watching. Imagepullbackoff is usually because the node can't pull the image due to some networking issue or the image doesn't exist or the tag you are using for the image doesn't exist or if you are pulling from a private registry, the credentials doesn't work. Do a kubectl describe pod and see events section in the output. You might get a clue.
Once again great
Hi Arun, thanks for watching.
I have set up the Metal lB in aws ec2-instanse(redhat 8) and external ip also came , but it does not expose the application in outside using that external ip and added the ports in security group as well . could you please help me how to resolve that issue
It has been stated in the official Metallb documentation that it is not supported in AWS. MetalLB can hand out IP address from the range you have configured without any issues but the networking won't work in the cloud.
Thanks for replay .I have watched your kubernetes videos and helped me a lot . Apart from cloud where we can easily setup the kubernetes ,metal lb and ingress?
@@hanumaadabala9541 Apart from the cloud you can set up a cluster in your local computer or laptop if you have a descent machine.
Thanks Sir.. Very nice video
Hi Amit, thanks for watching.
Thanks for sharing.
Thanks for watching.
boom! got it to work
Thanks for watching.
I have followed your video to the very point...got everything running, thanks for sharing your knowledge.
However, I've got some issues accesing the nginx outside the kubernetes, meaning, when i'm setting up the cluster and nginx, i'm on the server via ssh session.The app is deployed, exposed however from my machine (the same network) is the assigned external-ip inaccessible. Can you point me to the right direction ? Thanks.
Bro you look so cute and smart at same time!
I’ll take that as a compliment. Thanks
1:50
Is there anyway we can map a know IP address here. Let's say I use a DNS provider and I have 2 IP addresses allocated to me, is there anyway I can use those IP's instead of having to setup a Bare metal LB?
Thank you so very much! That was very clear. Do you have a video on how to install calico on the same setup? I want to use the configuration that is not the basic and offers the inscription? I am using ubuntu 20.04 help please?
Hi Ahmed, I used calico in my environment. Once you provisioned your kubernetes control plane, its just a matter of applying calico manifest as their documentation says.
I am not sure if you are aware of my vagrant provisioning script.
ruclips.net/video/AoEWX84h_ig/видео.html
I used Ubuntu 20.04 VMs and kubeadm method to provision cluster and calico on top of it.
Thank you so much for the help!
You are welcome.
Thanks for the video 👍, can you do a video on harness. Can be used to deploy in kubernetes cluster and also helm can be integrated.please look in to it.
Hi Raghu, thanks for watching. I will certainly add it to my list. I have lot other topics in the pipeline requested by viewers that I have to go through in order. Cheers.
@@justmeandopensource sure, do u also train?! I mean not on RUclips:)
First of all, thank you for all your life saving videos! Just wanna ask if you have a video as well on how you set up the machine containers you used for this cluster? thanks and more power!
Thanks a bunch
Hi, thanks for watching.
Hey did you provide any training on k8
What do you mean? Other than posting k8s related videos weekly in this channel I don’t do any training outside. Cheers.
Thank you for the excellent explanation. Are you planning any videos about Windows worker nodes in kubernetes?
Hi Joakim, thanks for watching. Yes I have that in my list for so long. But I need Windows server license to try that. I will give it a try soon though.
@Just me and Opensource, how can we set up metallb on macOs ? though the steps mentioned here creates the External IP for service, the network issue with Docker and Mac/Windows is causing the issues.
Hi Venkat Thanks for the video!. I have one issue. i cannot a able to access the external ip (Load Balancer) assigned for ngnix service outside of the VM centos 7 .(i.e like type node port) i cannot able to access this IP in chrome browser outside the VM.
But inside the VM i can access using wget and curl.
Can you please guide me this?
Hi, i’m a newbie. I have a question if I using a VPS server. And i have a public vps ip to access it. I must use vps public ip and port to access it right?
Thanks for the video. Can I change the listening port of MetalLB to 9090 instead of 80?
very good!
Thanks for watching.
Hi sir, Thank you for this excellent content. I was able to install MetalLB on my bare metal k8s cluster successfully and expose a Load Balancer service. I can also access my spring boot using external ip and port number from my browser on my localhost machine. But however when I try to access the load balancer external ip from outside my home internet network, I cannot reach my application. Could you please let me know on what should I do to make my app accessible world wide?
Nice video and nice desktop / terminal setup..... any details on that please?
Hi Thanks for watching. My setup is on an Arch Linux with I3 Tiling Window manager and Zsh shell with zsh-autosuggestions and zsh-syntax-highlighting plugin.
I have done some videos on I3 which mimic my desktop setup and uses Ansible to do the configuration and setup automatically. Hope it still works.
ruclips.net/p/PL34sAs7_26wOgqJAHey16337dkqahonNX
If I have 3 vm with virtualbox, is there a posibility to open the external link in the browser of the host? Or it is possibly only un kmaster vm? Thank you!
God of Kubernetes 🙏
That's a bit too much 🙆
Thanks for watching. Cheers.
I'm testing a k8s cluster with nginx ingress controller. i use another vm with haproxy to route traffic to worker nodes 80/443. Is metal LB the way to allow the same IP but with additional ports instead of 80/443?
What version of calico are you using?
3.18
Hey Venkat,
Thanks for the video. It's really very helpful. I Just got one problem while practicing this tutorial. while doing w3m . I am getting an error like "w3m: Can't load ". Could you please help me out with this. Thanks in advance
Another awesome video :) Thank you for the clear explanation. Could anyone please let me know which ssh terminal is being used in this session that auto-populates the commands as well.
Hi Sonali, thanks for watching. I used Zsh with zsh-autosuggestions plugin on my linux workstation. I did a quick demo of my terminal setup in this video.
ruclips.net/video/PUWnCbr9cN8/видео.html
Cheers.
@@justmeandopensource Thank you for the quick response .
No worries.
This is a very good walkthrough. On the first time around, I was able to get metallb running smoothly thanks to your video with the documentation provided by MetalLB, however upon attempting to do the same thing on another cluster (4 node, bare metal, different range of IPs on these machines), I am not able to gain access once the service exposes nginx.
I used sipcalc on the master node in my cluster and then used the last ten ip's in the range that it provided. I'm not sure if I'm doing things wrong here, do you have any advice on where to look for the usable range?
My kubernetes nodes have a wide variety of IP addresses, and they are not consecutive or close to one another. How does this affect the way I can assign IP addresses to it?
@@sammcooley I have noticed it sometimes but can't explain the behaviour. But majority of the times it works as expected. I have noticed this especially when running kubernetes clusters in docker containers where I don't control the ip assignment of the kubernetes nodes. But in my vagrant environment (172.16.16.0/24 network), i use the range 172.16.16.240-172.16.16250 as the metallb range and it works consistently.
@@justmeandopensource I've managed to get it going by choosing a much wider range of assignable IPs. One question for you: the created loadbalancer service (by using imperative expose command), what's the best way to get SSL for the loadbalancer IP?
@@sammcooley You can achieve that with Lets encrypt and Ingress.
May be you can watch my recently released Traefik v2 video series, where the third video is all about SSL (with MetalLB).
ruclips.net/p/PL34sAs7_26wNldKrBBY_uagluNKC9cCak
Hi Very nice tutorials..
I have a requirement that i wanted to setup the kubernetes cluster in cloud with self managed to simulate on-prem now if we required load balancer which IP range i can provide here ? Private IPs are managed by Cloud Provider digital ocean.
Hi, thanks for watching. MetalLB is purely for on-prem setups where you control the network range. It won't work in the cloud. I haven't tried, but you could take a look at kube-vip project.
Hi, its a very nice video, I created my cluster using "KinD" on My Laptop (along with Docker for Desktop on windows) and followed the instructions to create Metallb and its configmap but the external-ip for the ingress service was still showing . Can you confirm if this video is applicable for KinD environment as well ? My requirement is I need to create a multi-node cluster with the ingress service installed and want to assign a DNS to the ingress. Please let me know how to achieve it, Many thanks..
How can we make sure that the router does not over write these ? Can you please explain it in a scenario where we are a home user running behind simple router and we have say 3 node cluster and an ip range where dhcp is handled by router
Totally new question, can you please tell me hot to fix if your Kube-Proxy Pod shows CrashLoopBackOff error in kube-system namesapce?
Hi, thanks for the video! I have one question, are you able to ICMP ping the LoadBalancer IP addresses after they are assigned to the service? Like in your example 172.16.16.240/241? For me everything is working as I am able to see the default nginx page with curl/browser, but when I tried to ping, I am receiving something like:
# ping 172.16.16.240
PING 172.16.16.240 (172.16.16.240) 56(84) bytes of data.
From 172.16.16.102: icmp_seq=2 Redirect Host(New nexthop: 172.16.16.240)
Thanks!
Hi, thanks for watching. You won't be able to ping that load balancer IP which is expected and by design. Same is the case for any service with Cluster IP.
@@justmeandopensource Thanks for the clarification!
sir, I am able to access the content inside cluster using curl command but unable to access outside cluster in browser. what to do ?
Thank you for doing this,
its is very useful
I'm learning kubernetes based on your tutorial.
I have a problem in my setup.
We have a VM from CtrlS VM service provider.
Only master node.
Installed kubernetes which is going file.
installed metallb as per this tutorial it seems fine,
metlallb is assigning external ip but when I try to access that ip using
curl says no route to host
ping says Destination host unreachable
Could you help me out please?
HI Sharath, thanks for watching. In order to use Metallb, you have to have the control of the network. The metallb ip range you specify must be part of the network where you have the kubernetes nodes.
What is your kubernetes master IP and what range you specified in metallb config?
Hello, I'm currently learning kubernetes and planning to migrate my home media server from docker compose to k8s. I will use metallb to expose my traefik load balancer. I want to know if metallb will preserve that IP address on deployment restart. Because I will port forward my port 80 and 443 to the internet, technically I just portforward that port to the IP address from metallb right? If I restart my traefik deployment, I will get the same IP address? Because it will be very weird if I need to keep modifying my router portforward 😅
Hi, thanks for watching. Basically you are not changing the service and only changing the deployment by redeploying it. The service will remain the same and you will continue to use the same load balancer IP. If you delete and recreate the service you may get a different ip address.
@@justmeandopensource Oh got it thank you 😊
If I don't delete the service, but maybe I edit / update the service, will Kubernetes be smart enough to recreate it with the same address?
Just asking, if you were to update the service, what would you update in it?
@@justmeandopensource I don't know actually, just wondering 😝. Because I'm still waiting for my parts for the proxmox machine that I'll be using for k8s (so I'm basically still in near zero experience). As I said before, I'm just in planning mode and there are so many questions that I've got. Sorry for asking stupid questions 😅
No worries.
Hi, I just did a deployment on my baremetal server using the tutorial. The difference is that I am using IPV6 addresses.IPV6 address assignment went through well. I am able to ping the external IPV6 assigned for the app from all the nodes and externally too. however, I am not able to access the IPV6:80 port using curl command from anywhere except the node on which the docker container actually running. For example, for node1 and node2 if my pod was deployed on node2, I am able to ping the app from node1 and node2 and externally too but curl -I ipv6:80 works only from node2 and nowhere else.. I dont have any firewall rules.
Firstly, try with square brackets around ipv6 address if you are using curl. Secondly ensure you are using global ipv6 address. Ifconfig in your system would reveal global or local.
How can I obtain a range of public IPs to accessed from the browser?
I'm wondering why we have to use metallb, could we configure the external IP manually?
sir, can u upload latest video of the metallb, this tutorial not working in version 1.23.0
Sure I will re-test this and if thats the case I will upload a latest video. Cheers.
@@justmeandopensource metallb not providing ip when i install with latest, that is the issue
@@nikhildevsadasivan8557 How is your kubernetes cluster provisioned? On virtualbox VMs or cloud VMs?
@@justmeandopensource i'm using Virtual box. anyway it is working now after i downgraded to 1.8.5. before it was 1.23
@@nikhildevsadasivan8557 Cool.
what auto completion tool do you use
Thanks for watching. I use Zsh shell with zsh-autosuggestions plugin for that auto completion. Cheers.
Excelent
Hi Adrian, thanks for watching.
Hi - Nice video :) I'm using audio only... Any chance you can drop the commands you used somewhere?
1. hi venkat..your videos are awsome.i have a query..I created 3 vms in aws cloud and installed kubernetes cluster with calico network...I tried to create a nginx deployment and expose it as type Loadbalancer then the status is showing pending for loadbalancer ip...cloud provider not provided loadbalancer ip.
then i installed mettalb in that cluster...the problem is that metallb takes only private ips from the pool of ips in the subnet...is there any way to get public ip for the loadbalancer for getting accessed anywhere from internet....
2. in dns entry it is not possible to map private ip to the url any alternate to metallb which provides public ip
3. or else how to access get external ip for loadbalancer in onpremise kubernetes cluster so that it can map to dns entry and access anywhere...
Can u plz add a video on kubespray cluster creation with cre other than docker
Hi Muni, I did try that but there was a problem. I will give it a try again at some point and see how it goes. Cheers.
Thanks 😊
You are welcome.
Will metallb work on VMware as well?
And It was a great video. Thanks. 🙂
It should in theory.
Is there a way to acquire IPs by DHCP .. instead of predefining them ?
ok. I have installed metal lb in 10.3 it was not working. then downgraded to 9.6 worked. but not assigned external ip. after several hours i give up on metallb completely and go with trafiek alone using cluster ips i hope.
i am using single node cluster .... unable to use the metallb... please help
Dear Venkat, thank you for all your videos, github
I notice your use the Virtualbox vboxnet0 as a private DHCP server on 172.16.16.0/24
to provide IPs to cluster nodes, metallb and nginx deployments
I am using Ubuntu server 20.04 to follow this video and the default config after Virtualbox installation for vboxnet0 DHCP is 192.168.56.0/24
but the host-only interface vboxnet0 was not created and can not see on: ip a s
I do this:
VBoxManage hostonlyif create
VBoxManage hostonlyif ipconfig vboxnet0 --ip 172.16.16.1
VBoxManage dhcpserver modify --ifname vboxnet0 --ip 172.16.16.1 --netmask 255.255.255.0 --lowerip 172.16.16.2 --upperip 172.16.16.254
VBoxManage dhcpserver modify --ifname vboxnet0 --enable
Check changes with:
VBoxManage list dhcpservers
VBoxManage list hostonlyifs
Cheers
Hi Oscar, thanks for watching. You don't have to create the 172.16.16.1/24 network yourself for VirtualBox. When you start the environment with my vagrant setup, the network will automatically be created.
How is this different from 33.0 ?
How to expose metallb on different port than 80? Like 8080,8090?
can you add additional ip pools into the configmap files?
Sure can :) you might have to rescale the pods for it to take affect ;) ( kubectl scale -n metallb-system deploy *the name* --replicas=0 ) Or just delete the pods :P
Guys can you setup ingress geoIP? Sample: retrist country for a ingress domain.
since Version 0.13.2, the configmap is not supported anymore , changes a lot.
Hi, thanks for watching. Not sure where you read about configmap not being supported. I have tried this method recently and found working flawlessly. Cheers.
Still not getting any external ip.
👍🏿
keep walking !!!
Thanks :)
sipcalc