Expose Kubernetes Services Running on Amazon EKS (9 Ways)

Поделиться
HTML-код
  • Опубликовано: 7 авг 2024
  • 🔴 - To support my channel, I’d like to offer Mentorship/On-the-Job Support/Consulting - me@antonputra.com
    ▬▬▬▬▬ Experience & Location 💼 ▬▬▬▬▬
    ► I’m a Senior Software Engineer at Juniper Networks (12+ years of experience)
    ► Located in San Francisco Bay Area, CA (US citizen)
    ▬▬▬▬▬▬ Connect with me 👋 ▬▬▬▬▬▬
    ► LinkedIn: / anton-putra
    ► Twitter/X: / antonvputra
    ► GitHub: github.com/antonputra
    ► Email: me@antonputra.com
    ▬▬▬▬▬▬ Related videos 👨‍🏫 ▬▬▬▬▬▬
    👉 [Playlist] Kubernetes Tutorials: • Kubernetes Tutorials
    👉 [Playlist] Terraform Tutorials: • Terraform Tutorials fo...
    👉 [Playlist] Network Tutorials: • Network Tutorials
    👉 [Playlist] Apache Kafka Tutorials: • Apache Kafka Tutorials
    👉 [Playlist] Performance Benchmarks: • Performance Benchmarks
    👉 [Playlist] Database Tutorials: • Database Tutorials
    ▬▬▬▬▬▬▬ Timestamps ⏰ ▬▬▬▬▬▬▬
    0:00 Kubectl proxy
    3:34 Kubectl port-forward
    7:24 HostNetwork
    12:28 NodePort
    16:14 LoadBalancer (In Tree Controller)
    19:34 LoadBalancer (AWS Load Balancer Controller)
    23:06 Ingress (3rd Party Controllers)
    27:18 Ingress (AWS Load Balancer Controller)
    30:07 AWS API Gateway
    ▬▬▬▬▬▬▬ Source Code 📚 ▬▬▬▬▬▬▬
    ► GitHub: github.com/antonputra/tutoria...
    #kubernetes #devops #docker
  • НаукаНаука

Комментарии • 30

  • @AntonPutra
    @AntonPutra  Год назад +2

    🔴 - To support my channel, I’d like to offer Mentorship/On-the-Job Support/Consulting - me@antonputra.com

  • @pi3ni0
    @pi3ni0 Месяц назад +1

    I am really impressed! Your videos are super helpful! Keep going Anton!

  • @bernardoteisceira975
    @bernardoteisceira975 3 месяца назад +1

    Awesome explanation. I'm setting up a EKS Cluster in my personal AWS account to learn k8s via aws. I cannot tell you how much this video helped me understand the different ways of exposing k8s services. Also, i'm watching your k8s setup guides/videos.
    Thank you very much for your work!! It helps a lot
    Regards from Argentina!!

    • @AntonPutra
      @AntonPutra  3 месяца назад

      thanks for the feedback! glad that it helped

  • @yassinekhouaja1257
    @yassinekhouaja1257 Год назад +3

    Once again, your videos proved to be incredibly valuable and beneficial! 👌

  • @csmithDevCove
    @csmithDevCove Год назад +1

    There I was using EKSCTL get spin up a eks cluster and attempting to get it connected to the outside world. I came across your video to do this in Terraform (lesson 133 very useful). Then i come across this video which it looks like you have improved the terraform side of things.
    soo much help. Mr Putra, you rock.

    • @AntonPutra
      @AntonPutra  Год назад

      Thanks Chris, if you have anything other besides EKS, eksctl will only complicate your setup.

    • @csmithDevCove
      @csmithDevCove Год назад

      @@AntonPutra I agree. It was nice to setup a cluster and "simply get started" using EKSCTL. However, to your point, realized I needed Terraform to handle other infrastructure needs. Sooo.... why not just use terraform for everything. Cheers.

  • @pocketdimension_
    @pocketdimension_ Год назад +2

    Awesome video, as always 👌.

  • @George-mk7lp
    @George-mk7lp Год назад +1

    great stuff as always. thanks for your hard work!

  • @madhank93
    @madhank93 Год назад +1

    Another awesome content. Thanks you so much.

  • @sujithsurendran7686
    @sujithsurendran7686 Год назад +1

    Awesome. Thank you so much for taking time. Could you please share a video on opentelemetry, opentelemetry collector and observability.

    • @AntonPutra
      @AntonPutra  Год назад

      Thanks Sujith! Will do in the future. I used it in one of the previous tutorials to collect metrics. Maybe it can be helpful for you - github.com/antonputra/tutorials/blob/main/lessons/151/go-app/cmd/grpc-server/main.go#L12-L16

  • @agun21st
    @agun21st Год назад +1

    very useful video about EKS expose outside world. 😇

  • @papubhat
    @papubhat 9 месяцев назад +1

    you did a great job

  • @AndresGorostidi
    @AndresGorostidi 11 месяцев назад +1

    Thks for your video, it was very useful. But the way, I have a specific case where I would like your suggestion. I have a monolithic traditional server (HCL Domino) that is using a specific UDP port, UDP 1352. All the clients deployed externally will try to connect using that port, and I can not change the port to be used by the clients. Since NodePort will only expose ports starting at 3000, I can not use NodePort. I can not either use traditional Ingress controllers, since the traffic is not HTTP specific (as said, is using UDP). I am using EKS. Any suggestion on that approach to follow to handle this kind of application?

    • @AntonPutra
      @AntonPutra  11 месяцев назад

      Sounds like you have at least two options:
      1. Simply use the LoadBalancer service type.
      2. Use Nginx ingress controller and the "UDP service". This allows Nginx to proxy custom TCP/UDP protocols using the same load balancer. - kubernetes.github.io/ingress-nginx/user-guide/exposing-tcp-udp-services/

  • @rehantayyab82
    @rehantayyab82 10 месяцев назад

    for production eks cluster setup worker nodes should be in private subnets ..... plz reply

    • @AntonPutra
      @AntonPutra  10 месяцев назад

      yes, there is no need to place worker noods in public subnets only for nodeports and other edge cases

  • @kyles5559
    @kyles5559 Год назад

    Hi Anton, how are you managing CRD updates using helm_release?

    • @AntonPutra
      @AntonPutra  Год назад

      I only deploy helm charts with terraform for ephemeral environments or for demo/poc. Terraform does not not support drift detection in general. For production use cases, I only use kustomize with gitops tools such as argocd or helm.

  • @TahaYassineJguirim
    @TahaYassineJguirim 7 месяцев назад

    @ Host network : what if we make a function lambda to update IPs ?
    data "aws_instance" "node1" {
    filter {
    name = "tag:Name"
    values = ["name_node1"]
    }
    }
    data "aws_instance" "node2" {
    filter {
    name = "tag:Name"
    values = ["name_node2"]
    }
    }
    resource "aws_route53_record" "web" {
    // ...
    records = [data.aws_instance.node1.public_ip, data.aws_instance.node2.public_ip]
    }