MetalLB and NGINX Ingress // Setup External Access for Kubernetes Applications

แชร์
ฝัง
  • เผยแพร่เมื่อ 27 ธ.ค. 2024

ความคิดเห็น • 178

  • @EngineeringWithMorris
    @EngineeringWithMorris  ปีที่แล้ว +20

    GitHub project with all the manifests and setup instructions is linked in the description.

  • @archiet7t705
    @archiet7t705 8 หลายเดือนก่อน +21

    This is the best kubernetes Load balancer and Ingress controllers explainer video I have seen

    • @IceMan7812
      @IceMan7812 7 หลายเดือนก่อน +2

      agree, simple and to the point

    • @thingy909
      @thingy909 3 หลายเดือนก่อน +1

      The first Ingress deploy that actually works... Thank you so much and keep up the good work.

    • @raulgil8207
      @raulgil8207 14 วันที่ผ่านมา

      And in 10 minutes, no need for a half hour video going around and around

    • @ld6892
      @ld6892 5 วันที่ผ่านมา

      👍

  • @rukzmrlonely
    @rukzmrlonely 10 หลายเดือนก่อน +22

    Nice and crisp.
    I usually see training videos at 1.25 to 1.5 x speed. But this is the first time I slowed the video to .75 x😂

    • @raghavendarsridhar4403
      @raghavendarsridhar4403 10 หลายเดือนก่อน +1

      Its the only video I got on youtube explaining this, Thank you But I had to play it in 0.5x

  • @fabienlarrieu2
    @fabienlarrieu2 หลายเดือนก่อน

    Great explanation. Especialy about the way speaker uses arp.Thanks! You make me day

  • @VijetCP
    @VijetCP ปีที่แล้ว +4

    Thank you for making a clear and crisp video explaining a hard topic along with neat demos in 10 minutes

  • @FelipeTrindade-wf7zk
    @FelipeTrindade-wf7zk 5 หลายเดือนก่อน +3

    Great videos and animations! I wonder what software you used to do that! Changing topics... how did you manage to have access to the "172.20.0.120" (LoadBalancer IP) from your computer (in mine I couldn't reach this IP) ? Are you using MacBook or Linux?

  • @hitmanLis
    @hitmanLis 8 หลายเดือนก่อน +5

    dude you are really the first person to explain exactly what we need. Layed it all out perfectly, in nice detail and flow! Great job. First time see your vid. already subscribed and liked the video!

  • @girthquake8523
    @girthquake8523 ปีที่แล้ว +7

    Just started learning Kubernetes and this is the most clear/concise explanation on services I've seen. Thanks for helping me get MetalLB running in my local test cluster. Great content Morris!

    • @EngineeringWithMorris
      @EngineeringWithMorris  ปีที่แล้ว +3

      Thanks a lot for watching, and for the positive feedback, I am glad it was helpful.

  • @Williscool
    @Williscool 2 หลายเดือนก่อน

    This is far and away the best explanation of this I HAVE EVER SEEN!!!! THANK YOU SO MUCH!

  • @WillHester-w2o
    @WillHester-w2o 3 หลายเดือนก่อน +1

    Great work I found this video after struggling with this stuff for a few weeks to create a testing environment. This would have saved me so much time. I am sharing this with my team to get them update to speed.

  • @varyag00
    @varyag00 10 หลายเดือนก่อน

    Hi Morris, I just wanted to say my sincere thank you for your outstanding tutorial -- it's saved me a lot of time and helped me better understand cluster networking. I appreciate your calm and evenly-paced dictation and I'll certainly stay tuned for more.
    I've now deployed metallb on my home cluster and honestly I'm just happy to stop port-forwarding every little service!

  • @Kk-rl7nv
    @Kk-rl7nv 11 หลายเดือนก่อน +1

    what a clear explanation in 10 minutes, can we get more videos with projects

    • @EngineeringWithMorris
      @EngineeringWithMorris  11 หลายเดือนก่อน

      Sure. What kind of projects would like to see more of?

  • @foroughiarash
    @foroughiarash 2 หลายเดือนก่อน

    It's the best video for running ingress controller + MetalLB that it is working!

  • @oddmen
    @oddmen 10 หลายเดือนก่อน

    You explain the contents so simply and understandably that it is impossible not to learn.
    Thanks bro.

  • @victornoagbodji
    @victornoagbodji ปีที่แล้ว +5

    Outstanding overview that not only covers service types but load balancers and how to set up MetalLB. Thanks for making the video! 😊🙏

  • @javierldb
    @javierldb 2 หลายเดือนก่อน

    Congratulations, your video summarize brilliantly concepts like Service Types, Load Balancer, Ingresses. Thank you, very useful.

  • @cigarettesafter9435
    @cigarettesafter9435 9 หลายเดือนก่อน

    Super simple and straight to the point. Incredibly clear. Well done!

  • @oleksandrshalbanov2685
    @oleksandrshalbanov2685 9 หลายเดือนก่อน

    Thx man, this is the first video I found, that explained all the process from metallb setup to ingress configuration

  • @jpbarcelos
    @jpbarcelos ปีที่แล้ว +2

    Dude, this video is a work of art. Seriously. Thank you. It really nails the explanation.

  • @sunosound
    @sunosound 9 หลายเดือนก่อน

    Thanks Morris, super simple and complete explanation! Now I have a MetalLB installed on my bare-metal. Awesome 👏👏👏

  • @eduardpanov1921
    @eduardpanov1921 10 หลายเดือนก่อน

    Nice, calm and concise explanation. I've been searching this for a whole day. Thank you.

  • @jonbrule2897
    @jonbrule2897 9 หลายเดือนก่อน

    An outstanding video. Your overview and detailed step thru is clear and thorough! Keep up the great work!

  • @t0asta
    @t0asta 5 หลายเดือนก่อน

    Exemplary work here - I've been trying to get a grasp on the k8s network ecosystem from the bare metal perspective for a couple of hours and this has been the best single resource.

  • @Drakvod
    @Drakvod 6 หลายเดือนก่อน

    I really appreciated how straightforward this tutorial was. I finally managed to understand how metallb and nginx ingress controller can work in tandem and can now expose my k8s cluster to some external traffic. Thank you!

  • @Akimbo711
    @Akimbo711 8 หลายเดือนก่อน

    I was having a nightmare trying to find a video that explained what I was trying to do - this nailed it
    Thank you

  • @Selahmescudi
    @Selahmescudi 3 หลายเดือนก่อน

    Hours wasted until this video.
    Thank you!

  • @ronaregen7921
    @ronaregen7921 6 วันที่ผ่านมา

    this the best guidance to setup loadbalancer and ingress fro me. thanks, dude!

  • @wecharg
    @wecharg ปีที่แล้ว

    I skipped over this the first time, when I came back and stayed with it I learned a bit, thanks!

  • @JonathanSomersIsAwesome
    @JonathanSomersIsAwesome 11 หลายเดือนก่อน

    I've been struggling with these concepts for a bit, this really helped make it click. Thanks!

  • @suntenslp3315
    @suntenslp3315 ปีที่แล้ว +3

    Hi Morris, your video made my day! I was stuck for a long time on how a load balancer assigns an external IP to my ingress controller. Most youtube resources just briefly mentioned this flow but without showing an actual example like you did. Your diagrams are really helpful to explain how things fit together.
    A suggestion if you don't mind - if you can share the commands and files you used on github, it will help beginners like me a lot.
    Hope to see more videos from you.

    • @EngineeringWithMorris
      @EngineeringWithMorris  ปีที่แล้ว

      Hi suntenslp3315, thanks for watching I am very glad you liked the video. Thanks for the suggestion too, and I will definitely make it a goal to do better documentation for the videos.

    • @thegrimreaper156
      @thegrimreaper156 ปีที่แล้ว

      Same!!! Thank you Morris.

  • @rixonmathew
    @rixonmathew 11 หลายเดือนก่อน

    Nice job in explaining concept and getting started in a very clear and crisp manner.👍

  • @MikeBruce-b1f
    @MikeBruce-b1f 3 หลายเดือนก่อน

    Morris this was a really useful tutorial, thanks a bunch!

  • @vladimirkulyashov1417
    @vladimirkulyashov1417 ปีที่แล้ว

    Thank you! I've been stuck with the problem for a couple of days. Came out that I had no L2 Advertisement applied to my MetalLB. Worked like a charm! :)

  • @rukzmrlonely
    @rukzmrlonely 10 หลายเดือนก่อน

    Nice and crisp.
    I usually see training videos at 1.25 to 1.5 x speed. But As our freind Morris is so fast, this is the first time I slowed the video to .75 x😂. Solution worked for me

  • @yunielalvarez5158
    @yunielalvarez5158 ปีที่แล้ว

    Thank you for this video, it has been very useful for me. I have been trying to configure Metallb in my Kubernetes cluster for more than 15 days and I needed to create the L2Advertisement. Without this video it would never have worked for me. Thank you very much for the help.

  • @bartsimpson2324
    @bartsimpson2324 3 หลายเดือนก่อน

    Great quality of video, sound, Excellent explanation. A little too fast sometimes for me to acquire knowledge. Superb material!

  • @АнтонСапановский-й4щ
    @АнтонСапановский-й4щ ปีที่แล้ว

    Great video, helped when configuring Metallb & Ingress Nginx Controller. I wish there were more such detailed video tutorials

  • @ammekilde1
    @ammekilde1 ปีที่แล้ว

    Best video on metallb and ingress i have seen. Thanks for the work

  • @olegfranko8675
    @olegfranko8675 ปีที่แล้ว +3

    Thanks for the great content and explanation.
    I would have expected a lot more views and likes on your videos.
    Hopefully your channel will grow with time;))

  • @vijayrakshith5785
    @vijayrakshith5785 4 หลายเดือนก่อน

    Thanks for the detailed steps!! My gratitude and appreciation to you!!

  • @jesse-leonard
    @jesse-leonard 4 หลายเดือนก่อน

    this was awesome, loved your neovim set up too

  • @Hayzin
    @Hayzin ปีที่แล้ว +1

    Excelent explanation about loadbalancer and metallb!

  • @mzimmerman1988
    @mzimmerman1988 3 หลายเดือนก่อน

    This video is well done! Thank you for sharing.

  • @wlevels
    @wlevels หลายเดือนก่อน

    Very clear explanation, thanks!

  • @Tendeza_
    @Tendeza_ 7 หลายเดือนก่อน

    Clear explanation and good tutorial, actually works!

  • @PiraveenKamalathas_PIRA_
    @PiraveenKamalathas_PIRA_ 19 วันที่ผ่านมา

    Amazing tutorial video, thank you!!

  • @slayoftw
    @slayoftw ปีที่แล้ว

    Awesome, brother! Please keep on sharing! Love your accent!

  • @IamKanuKingsley
    @IamKanuKingsley ปีที่แล้ว

    I have been blessed with this video. Wow! Thanks a lot.

  • @paulamori494
    @paulamori494 3 หลายเดือนก่อน

    Thank you for your video! It helped a lot!!!

  • @florin-marianhazi2143
    @florin-marianhazi2143 7 หลายเดือนก่อน

    Many thanks!
    You saved me a lot of time!!!

  • @davidcunliffe2986
    @davidcunliffe2986 6 หลายเดือนก่อน

    @EngineeringWithMorris what are you using for your presentation software? Its insane how great it flows with your conversation!

  • @mohamedumarali
    @mohamedumarali ปีที่แล้ว

    Great explanation Morris!

  • @АлексейСтерх-ь2в
    @АлексейСтерх-ь2в ปีที่แล้ว

    Wow, It's amazing, bro! Спасибо, теперь я понял, что я делал не правильно, и понял как надо!

  • @leonardolimaribeiro8282
    @leonardolimaribeiro8282 ปีที่แล้ว

    This video was SUPER helpful for me. Thanks, man!

  • @lucatonnyr
    @lucatonnyr ปีที่แล้ว +1

    A little question, how do you make the presentation?... Is dynamic, is cool!.

  • @RobertoDMaggi
    @RobertoDMaggi 11 หลายเดือนก่อน

    great job man! you made my day

  • @st3ddyman
    @st3ddyman ปีที่แล้ว

    Good, succinct information. Thanks for the video

  • @danielkirkland4439
    @danielkirkland4439 ปีที่แล้ว +1

    Wonderful video! Thank you! I do have one question. Everything works great, but I am not clear on how I would be able to reach my services from a public URL or IP address. Without using an ingress and metallb, I would use nodeport. However, I am not seeing where or how to expose the ingress to internet connections. Any guidance would be most appreciated.

    • @EngineeringWithMorris
      @EngineeringWithMorris  ปีที่แล้ว

      Hi, thanks for watching. You can use any IP address range with MetalLB even a publicly routable IP range as long as it is accessible on the node's ethernet segment. Another way to do it is to map an upstream public IP address range to the private range provisioned to MetalLB with port forwarding. This might require some extra configuration(probably through a custom mutating webhook admission controller) for the the public IP to show up as an externalIP on your LoadBalancer service.

    • @danielkirkland4439
      @danielkirkland4439 ปีที่แล้ว

      Thanks I will give it a try. @@EngineeringWithMorris

  • @johnblyberg4801
    @johnblyberg4801 25 วันที่ผ่านมา

    Awesome video. Thanks!

  • @nareshh74
    @nareshh74 ปีที่แล้ว +1

    thanks for the video Morris.
    I have a doubt - i see external Ip is assigned to the load balancer. but when i curl-ed it, it doesn't reach. how should i troubleshoot this?

  • @thadhinz8814
    @thadhinz8814 ปีที่แล้ว

    Nice video! Very informative.

  • @EdmilsonDaSilva-t3f
    @EdmilsonDaSilva-t3f ปีที่แล้ว

    Amazing explanation, thank you!

  • @palanisamy-dl9qe
    @palanisamy-dl9qe 7 หลายเดือนก่อน

    Great video are you using Linux box or windows vm?

  • @CorsisaTests
    @CorsisaTests 7 หลายเดือนก่อน

    Very helpful! thank you!

  • @michaeltyiska
    @michaeltyiska ปีที่แล้ว

    Great explanation. Just subbed!

  • @AlexKeySmith
    @AlexKeySmith ปีที่แล้ว +1

    Great explanation of the relationship between nginx and ingress! Previously I'd missed the point that needed to set the service back to clusterip. Am I right in thinking nginx is implicitly using metallb? I've been struggling to conceptualise that after reading the documentation.

    • @EngineeringWithMorris
      @EngineeringWithMorris  ปีที่แล้ว +1

      Hi Alexander, thanks for watching. It is not absolutely necessary to revert the web app's service back to type ClusterIP in order for the web app to use NGINX Ingress. In such a scenario, access to the web app will be facilitated both through the external IP address(assigned by MetalLB) and the domain name which is pointing to NGINX Ingress' own LoadBalancer service external IP(also assigned by MetalLB). The reason for reverting back to ClusterIP is to conserve external IPs by freeing up the one used up by the web app.

    • @AlexKeySmith
      @AlexKeySmith ปีที่แล้ว

      @@EngineeringWithMorris thanks for the fast response and clarification!

  • @nagyjoco
    @nagyjoco 11 หลายเดือนก่อน

    Great content! Subscribed.

  • @user-ano-x5c
    @user-ano-x5c ปีที่แล้ว

    Great explanation .. Thanks

  • @arunreddy1436
    @arunreddy1436 6 หลายเดือนก่อน

    nice video ! had quick question , you have mapped host to the ip (172.20.0.120) inside /etc/hosts . is this metal lb ip ? or server ip where metal lb installed ?

  • @kashifmahmood8120
    @kashifmahmood8120 ปีที่แล้ว

    Great explantion Morris. Will metalLB work in a hyper-scaler environment. And what if I need to have support for SCTP

    • @EngineeringWithMorris
      @EngineeringWithMorris  ปีที่แล้ว

      Hi thanks a lot. I am not entirely sure as I have not yet tested it in such an environment. One thing to keep in mind though is that with this configuration mode MetalLB is working in Layer 2 mode and is doing a lot of stuff with ARP, so if your environment does not support ARP that might be an issue. MetalLB does also have a Layer 3 Mode where it uses BGP which you might want to check out as well.

  • @ilyasturan1234
    @ilyasturan1234 ปีที่แล้ว

    Thank you. it was best video.

  • @djangopratik
    @djangopratik 10 หลายเดือนก่อน

    great video mate

  • @victorialopez471
    @victorialopez471 ปีที่แล้ว

    Hi Morris, thank you for the excellent video!! The first one that finally explains Load Balancer + Ingress nginx + example to test locally for Bare metal. I followed the same installation as you but I'm not able to curl my service. Since the installation and services are set up the same, I wonder if it could be the network add-on that I'm using (Calico) seems like it requires additional IPPool manifest to be applied. Could you please share the network add-on you're using, and if any additional configuration was required? Much appreciated!

    • @victorialopez471
      @victorialopez471 ปีที่แล้ว

      Forgot to add additional information in my setup:
      1 controller and 1 worker node (both set up in different computers)
      I'm using Kubernetes 1.28
      Calico v3.25.0

    • @EngineeringWithMorris
      @EngineeringWithMorris  ปีที่แล้ว

      Hi thanks for watching, I really appreciate the support. I am using Calico as well which I set up as part of the Kubernetes install(you can checkout my other videos on setting up Kubernetes). I do have a default ippool(kubectl get ippool) configured and if you don't perhaps that is where the problem is. So might want to create an ippool. You might also want to try setting the ExternalTrafficPolicy on your metallb services to Cluster

  • @wind1309
    @wind1309 ปีที่แล้ว

    very nice presentation, subbed

  • @everythingselfhosting
    @everythingselfhosting 4 หลายเดือนก่อน

    great tutorial!

    • @MegaRagtag
      @MegaRagtag 4 หลายเดือนก่อน

      but how do i get access the app outside the server ?

  • @gavnray
    @gavnray ปีที่แล้ว

    Great explanation!

  • @iqbalibrahim4713
    @iqbalibrahim4713 9 หลายเดือนก่อน

    question, because there is ingress, should the load balancer pool need to be only one specific value? because all the other svc are using clusterIp

  • @abridevops-qr4pz
    @abridevops-qr4pz ปีที่แล้ว

    I love your style of teaching. I have been having a hard time trying to install metalLB in my local k8s cluster. I used PROXMOX as my hypervisor for my bare metal. Do you have any ideas that can help me resolve this issue?

    • @EngineeringWithMorris
      @EngineeringWithMorris  ปีที่แล้ว

      That depend on where the issue is, where do you seem to be stuck.

    • @abridevops-qr4pz
      @abridevops-qr4pz ปีที่แล้ว

      @@EngineeringWithMorris when i try to install metalLB, i get crashloop Backoff for my speaker pods.

  • @felipe-z7msku9f
    @felipe-z7msku9f ปีที่แล้ว

    nice vid, congrats

  • @tinkykumari473
    @tinkykumari473 หลายเดือนก่อน

    Thank you so much, could you please explain this with DNS SSL certificate

  • @baileymiller5880
    @baileymiller5880 ปีที่แล้ว

    This video makes it look so simple and I think I am really close but I am still having some trouble understanding this setup / it's not working on my small home cluster. I have 3 nodes, 1 control-plane and 2 rasp pi nodes. I followed all this same setup but nothing seems to be spinning up. For the IP pool, is that my home IP address or the IP address of the device on my network that is listening on ports 80,443? In my case only 1 device on my network has port forwarding setup for them (The control-plane node).

    • @EngineeringWithMorris
      @EngineeringWithMorris  ปีที่แล้ว

      I am assuming you are able to reach your k8s cluster network, meaning you can ping either a control-plane node or a worker node from your machine. For example if your cluster network is 192.168.1.0/24 and your nodes use the range say from 192.168.1.10 - 192.168.1.20, then you should choose a metallb ip pool in the same network like say 192.168.1.30 - 192.168.1.50. Just ensure no other devices are using these reserved ips.

  • @VishalMK-i4f
    @VishalMK-i4f 15 วันที่ผ่านมา +1

    Hi,
    I have followed the steps which you shared. And i used the ip range for the pool is "172.31.32.100-172.31.32.120" which comes under my worker node subnet, and i got the ip from the service. But im not able to expose with this ip. Does this ip is private so how can we expose this ip only the public ip can expose right?. Any way in my case it didnt worked. Can you help me.

  • @pt_trainer9244
    @pt_trainer9244 3 หลายเดือนก่อน

    Thank you, i have pretty much everything working on my ubuntu VPS but I'm unable to access my application from my local PC using the IP provided by metallb

  • @UvinduSahan-n7y
    @UvinduSahan-n7y ปีที่แล้ว +1

    how can I apply this tutorial to a cluster deployed in ec2 instance....I can access deployed app as load balancer but I cannot access it using ingress...what Ip should I give to cloudflare dns...?

  • @harunafaruk2971
    @harunafaruk2971 ปีที่แล้ว

    Thank you very much 🎉

  • @tynshjt
    @tynshjt 7 หลายเดือนก่อน

    Please help. I created the IP Pool and L2Advert. The pools all the nodes (masters and workers). Now my Kubernetes cluster is not accessible

  • @conradtaylor29
    @conradtaylor29 6 หลายเดือนก่อน +1

    When I attempt to access the `web-app` using the assigned IP address with `curl 120.0.20.120`, the process hangs and timeouts. Does one need to update the /etc/hosts file here?

    • @JamesBond-re2nt
      @JamesBond-re2nt 2 หลายเดือนก่อน +1

      Same for me, did you find a fix bro ?

  • @orideothuke1034
    @orideothuke1034 ปีที่แล้ว

    Nice video. Please i'd like to ask a question. please how do we come about those range of IP addresses? i reckon public IP addresses are not free and that range could clash with some existing public IP somewhere. Thnx

  • @nazil_kottakkal
    @nazil_kottakkal ปีที่แล้ว

    iam anticipating a high volume of incoming traffic to my Kubernetes cluster through Ingress controller, and iam worried about potential damage to cluster due to the heavy load. i want to scale, unfortunately i have no idea about what will i scale ? ingress or node or control plane ? ingress controller where will be run ? please reply this

  • @adityahpatel
    @adityahpatel 10 หลายเดือนก่อน

    Confusing - Does MetalLB load-balance across multiple nodes OR multiple services? If i have 5 raspberry Pis running Service#1 of type load balancer, does metalLB load balance across nodes?

  • @adityahpatel
    @adityahpatel 10 หลายเดือนก่อน

    If your nodes have static ips, can't you attach external HaProxy load balancer instead of all this? .. where all Haproxy sends traffic to either node at say port 31111 (where you have the ingress-controller running)? Is this is a much simpler solution than metallb?

  • @DeepakPatel-yz1xx
    @DeepakPatel-yz1xx ปีที่แล้ว

    Hi Morris, thanks for efforts in creating this tutorial. Would it be possible to show the same using CSP LB (AWS/AZure) to work with NGINX Ingress Controller in Kubernetes for any K8s running as Services (EKS/AKS) or K8s running on EC2 or nodes on CSP. Thanks in advance.

    • @EngineeringWithMorris
      @EngineeringWithMorris  ปีที่แล้ว

      Hi, thanks for watching. I definitely do have some videos on cloud Kubernetes planned soon. Watch this space.

  • @goodgameplays9571
    @goodgameplays9571 9 หลายเดือนก่อน

    Hello! Thank you all works well but i have a problem! when i try to access the link via my browser it doesn't work any idea ??

  • @huahe-er4lo
    @huahe-er4lo 3 หลายเดือนก่อน +1

    quite clear ! Thanks !

  • @romosa25
    @romosa25 4 หลายเดือนก่อน

    Is IPAddress pool is an available IP Range within my network?
    So if i have network of 10.0.24.0/24, the IPAddress pool should be in this range?

  • @nonenone6566
    @nonenone6566 ปีที่แล้ว

    Clear explanations

  • @andherium
    @andherium ปีที่แล้ว

    What happens if the node that was running the ingress controller pod goes down? You would need to change the host ip mapping to thew ip of the new node that runs the controller right?
    There should be a better way?

    • @EngineeringWithMorris
      @EngineeringWithMorris  ปีที่แล้ว +1

      Hi, the MetalLB load balancer ips are not statically configured on any node, but are instead advertised out from an appropriate node. So in the event a node goes down the ip will simply be advertised through another node maintaining connectivity to your service. This is done automatically by MetalLB no need for manual intervention.

  • @kevs3654
    @kevs3654 ปีที่แล้ว

    sir what version of kubernetes are you using? 1.28?

  • @bokhanych
    @bokhanych 4 หลายเดือนก่อน

    Thank you!

  • @Torotero
    @Torotero 3 หลายเดือนก่อน

    can we just install ingresscontroller straight without metallb ? cause the functionality kinda the same