NGINX Ingress Controller for Kubernetes Tutorial: YAML & Helm | Example | Prometheus | Grafana | EKS

Поделиться
HTML-код
  • Опубликовано: 7 авг 2024
  • 🔴 - To support my channel, I’d like to offer Mentorship/On-the-Job Support/Consulting - me@antonputra.com
    👉 [UPDATED] AWS EKS Kubernetes Tutorial [NEW]: • AWS EKS Kubernetes Tut...
    ▬▬▬▬▬ 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
    🔴PART 2🔴 Cert Manager Kubernetes Tutorial (Let's Encrypt & Nginx Ingress & ACME | 5 Examples | YAML & HELM) - • Cert Manager Kubernete...
    =========
    ⏱️TIMESTAMPS⏱️
    0:00 Intro
    2:31 Deploy Prometheus on Kubernetes Cluster
    6:02 Deploy Nginx Ingress Controller (YAML & HELM)
    12:20 Monitor Nginx Ingress with Prometheus
    13:47 Deploy Grafana on Kubernetes Cluster
    15:36 Import Nginx Ingress Controller Grafana Dashboard
    17:32 Create Ingress for Prometheus (Ex. 1)
    20:03 Test Nginx Ingress Admission Webhook
    22:02 Create Ingress for Grafana (Ex. 2)
    23:38 Simple Fanout Ingress Example (Ex. 3)
    28:44 Virtual Hosting Ingress Example (Ex. 4)
    30:10 Nginx Ingress TLS Example (Ex. 5)
    38:01 Nginx Ingress Different Namespaces Example (Ex. 6)
    41:13 Nginx Ingress TCP Example (Ex. 7)
    46:09 Monitor Nginx Ingress with Grafana
    =========
    Source Code
    🖥️ - Code & Commands: antonputra.com/kubernetes/ngi...
    #Ingress #Nginx #Kubernetes

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

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

    🔴 - To support my channel, I’d like to offer Mentorship/On-the-Job Support/Consulting - me@antonputra.com
    👉 [UPDATED] AWS EKS Kubernetes Tutorial [NEW]: ruclips.net/p/PLiMWaCMwGJXnKY6XmeifEpjIfkWRo9v2l&si=wc6LIC5V2tD-Tzwl

  • @awstherapy
    @awstherapy 2 года назад +3

    Excellent Job Anton, I've learned a lot watching your video and reading/using your code !

  • @ToddThomas_todd_dsm
    @ToddThomas_todd_dsm 2 года назад +3

    Brilliant content! Thank you for taking the time to make this video :-) I learned a lot.

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

    👉 How to Manage Secrets in Terraform - ruclips.net/video/3N0tGKwvBdA/видео.html
    👉 Terraform Tips & Tricks - ruclips.net/video/7S94oUTy2z4/видео.html
    👉 ArgoCD Tutorial - ruclips.net/video/zGndgdGa1Tc/видео.html

  • @zazaaaaadd
    @zazaaaaadd 2 года назад +1

    Excellent, thanks a lot for this fantastic update Anton

    • @AntonPutra
      @AntonPutra  2 года назад

      Thanks serge, I hope 50 min is not too long for tutorials :)

  • @joeb.1163
    @joeb.1163 2 года назад +1

    Another brilliant video. Thank you very much

  • @ruwanvimukthimettananda7847
    @ruwanvimukthimettananda7847 2 года назад +1

    Thanks Anton, excellent explanation as usual

    • @AntonPutra
      @AntonPutra  2 года назад

      Thanks Ruwan, I hope it's not too long :)

  • @AntonPutra
    @AntonPutra  2 года назад +1

    🔴PART 2🔴 Cert Manager Kubernetes Tutorial (Let's Encrypt & Nginx Ingress & ACME | 5 Examples | YAML & HELM) - ruclips.net/video/7m4_kZOObzw/видео.html
    🔴UPDATED🔴: How to Create EKS Cluster Using Terraform - ruclips.net/video/MZyrxzb7yAU/видео.html

    • @AntonPutra
      @AntonPutra  2 года назад

      Will be released on September 6, 2021.

  • @RakeshWaghela
    @RakeshWaghela 2 года назад +1

    AWESOME !
    I subscribed and hit the bell icon :D

    • @AntonPutra
      @AntonPutra  2 года назад

      Awesome thank you Rakesh!

  • @monitorcamera8850
    @monitorcamera8850 2 года назад +1

    easy to follow , awesome video

  • @rohittiwari5575
    @rohittiwari5575 2 года назад +1

    Great tutorial! Can we have video on managing multiple ingress controller in the same cluster and how to define which ingress controller a ingress resource will use to route traffic? - confused with Ingress Class

    • @AntonPutra
      @AntonPutra  2 года назад

      simply spread them between different namespaces and make sure they have different ingress class names. If you use helm, just update default ingress class to something

  • @x84sh81
    @x84sh81 2 года назад +2

    Awesome.. can u make video using gke and for nginx ingress controller not using helm? thanks

    • @AntonPutra
      @AntonPutra  2 года назад +1

      Yes, in the future. I have another tutorial gke + ingress if you are interested ruclips.net/video/X_IK0GBbBTw/видео.html

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

    Hi...I've tried the ingress rule as path based routing rather than hostname based, while checking in the grafana, I've seen only the ingress of hostname based routing, I couldn't see the path based ingress file metrics...Can you give the idea about this...? I need to see path based routing metrics also...

  • @chibimentor
    @chibimentor 2 года назад +1

    Thanks!

  • @SachinSharma-kk1up
    @SachinSharma-kk1up 2 года назад

    Thx for wonderful session. Can we configure nginx ingress using selected ip from subnet as we do in aks as internal LB ip . I tried in eks it created but with random ip from subnet schema as internal but I want specific ip .

    • @AntonPutra
      @AntonPutra  2 года назад

      You can allocate an Elastic IP address and use it for your load balancer.
      aws.amazon.com/premiumsupport/knowledge-center/elb-attach-elastic-ip-to-public-nlb/

  • @dpicollege
    @dpicollege 2 года назад

    Great video but i confused does values.yml consist of both nginx class and kubernetes controller class together? could you explain? should i know all object of nginx and kubernetes class?

    • @AntonPutra
      @AntonPutra  2 года назад +1

      Yes it does, it's done for legacy compatibility. For example cert-manager aims to support as many ingresses as posible to do that they decided to use old "annotations" instead of ingress classes. Nginx ingress class supports both class name and old annotation "nginx class"

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

    you are love @antonPutra

  • @mahesh-nn4no
    @mahesh-nn4no 2 года назад

    Hey Aton, you explaination is too good. But i have a doubt. what annotation should we use if install ngnix ingress controller on kubernetes cluster which is on our own Bare metal servers.

    • @AntonPutra
      @AntonPutra  2 года назад

      it depends on the version of controller and k8s cluster. Most likely you would also need to use ingress class. Annotations mostly used by custom controllers that you deployed to k8s, I would recommend to search what annotations your controller support

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

    Thank you for the great content. I have question, I want to use Amazon Certificate Management (ACM) certificate for TLS/SSL in Nginx Ingress, How can I use it?

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

      You can manually create "tls" type kubernetes secret and point to it in your ingress object. In this case you need to monitor yourself certificate expiration.

  • @HoneyHaiderMengha
    @HoneyHaiderMengha 9 месяцев назад

    Sir is it possible to make a vedio like a basic nginx app and ingress deployment along with load balancer

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

      I think I have plenty of them on my channel =)

  • @robarros21
    @robarros21 2 года назад +2

    Thanks Anton, Could show how use ModSecurity Web Application Firewall
    in nginx ingress
    Thank you

    • @AntonPutra
      @AntonPutra  2 года назад +1

      Thanks for the suggestion, I'll put it in my list.

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

    Amazing tutorial, can I do url rewrite 3rd example with ALB Ingress Controller? any example or link, thanks

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

      it seems not supported at this time => github.com/kubernetes-sigs/aws-alb-ingress-controller/issues/835

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

      @@AntonPutra thanks a lot

  • @Rkagr208
    @Rkagr208 2 года назад

    I am in a weird situation, I follow your examples to create the EKS cluster using terraform but for the ingress controller we need to do the irsa thing, right? i.e. setting the service account with the IAM roles and the identity provider in AWS part. I am not able to fix that and it is not present in your tutorials.
    When I create the ingress controller and the ingress, everything is fine just the ingress controller is not able to create the alb for that ingress. Could you please help me here?

    • @AntonPutra
      @AntonPutra  2 года назад

      I have a new tutorial with explanation how to set up irsa. antonputra.com/Terraform/how-to-create-eks-cluster-using-terraform/#create-iam-oidc-provider-eks-using-terraform

  • @kkkant1547
    @kkkant1547 2 года назад

    Hello
    I'm using the terraform for the infrastructure provisioning but I cant able to find how can I setup using terraform is there is any way to setup this using terraform as you are using the eksctl tool soo I need to work with eksctl tool with terraform ?

    • @AntonPutra
      @AntonPutra  2 года назад

      Take a look at this tutorial - ruclips.net/video/oYHZ3EPR094/видео.html

  • @MohammadFazil
    @MohammadFazil 2 года назад

    Can we've the same for using Azure kubernetes services

    • @AntonPutra
      @AntonPutra  2 года назад

      Sure, in the future, I'm planning to create a few lessons for Azure cloud.

  • @mozhago8280
    @mozhago8280 2 года назад

    I'm getting this error "Error syncing load balancer: failed to ensure load balancer: LoadBalancerIP cannot be specified for AWS ELB" when setting LoadbalancerIP for controller service, Any idea

    • @AntonPutra
      @AntonPutra  2 года назад

      You getting this error when trying to use static/elastic IP for load balancer? What EKS version are you using?

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

    What is the advantage of using SSL certificates in the Ingress instead of putting a reverse proxy in front of Ingress to handle the certificates?

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

      nginx ingress is a reverse proxy (it's literally nginx), don't add unnecessary complexity

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

      @@AntonPutra Ok. In my case to avoid complexity I will keep my Nginx reverse proxy dealing with that.

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

      @@ebiscaia Sure just don't forget to configure body size, source headers on both proxies. As far as I remember body size on ingress around 1mb

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

    Hi Anton. Nice tutorials.
    But I got prometheus-operator pod always pending. I run in in virtual machine using Ubuntu 20 in Hyper-v windows 11.

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

      you can describe it to get the error message
      "kubectl describe pod prometheus-operator..."

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

      @@AntonPutra It replied with the pod name is not found. Something like that. I have copied paste the name from kubectl get pods -A

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

      @@sulaimantriarjo8097 "-A" will give all pods in all namespace, but if you need to describe an object such as pod, do not use "-A" instead use "-n "

  • @user-mf9tp3uh4p
    @user-mf9tp3uh4p Год назад

    I followed the same steps but on Nginx Ingress TCP Example part I can't connect to postgres. The only different thing I did is used external Ip of Loadbalancer instead of creating CNAME, but does it make any difference ?

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

      No it should nod. In general you need to use IP that created by the service of type loadbalancer during the installation of ingress

    • @user-mf9tp3uh4p
      @user-mf9tp3uh4p 11 месяцев назад

      I found the problem :) that was about my firewall and it is working now @@AntonPutra

  • @qwerfdsdsdfghd
    @qwerfdsdsdfghd 2 года назад

    coudl you make example of NGINX Ingress Controller for Kubernetes Tutorial: YAML & Helm with using terraform ?

    • @AntonPutra
      @AntonPutra  2 года назад

      Do you mean to use Kubernetes Provider to deploy nginx ingress? Link - registry.terraform.io/providers/hashicorp/kubernetes/latest/docs

  • @premierde
    @premierde 2 года назад

    👏Can we add metallb as LB in ingress values file

  • @richarmunicosamaniego8216
    @richarmunicosamaniego8216 2 года назад +1

    ... external DNS with GCP ..., like it

  • @AntonPutra
    @AntonPutra  2 года назад +1

    ⏱️TIMESTAMPS⏱️
    0:00 Intro
    2:31 Deploy Prometheus on Kubernetes Cluster
    6:02 Deploy Nginx Ingress Controller (YAML & HELM)
    12:20 Monitor Nginx Ingress with Prometheus
    13:47 Deploy Grafana on Kubernetes Cluster
    15:36 Import Nginx Ingress Controller Grafana Dashboard
    17:32 Create Ingress for Prometheus (Ex. 1)
    20:03 Test Nginx Ingress Admission Webhook
    22:02 Create Ingress for Grafana (Ex. 2)
    23:38 Simple Fanout Ingress Example (Ex. 3)
    28:44 Virtual Hosting Ingress Example (Ex. 4)
    30:10 Nginx Ingress TLS Example (Ex. 5)
    38:01 Nginx Ingress Different Namespaces Example (Ex. 6)
    41:13 Nginx Ingress TCP Example (Ex. 7)
    46:09 Monitor Nginx Ingress with Grafana

    • @LalitYadav-eo4hv
      @LalitYadav-eo4hv 2 года назад

      As always another great video, very helpful. I will try this today.

  • @philippsagalovich8170
    @philippsagalovich8170 2 года назад

    hello, is possible that one ingress controller manage some ingresses in different namespaces????

    • @AntonPutra
      @AntonPutra  2 года назад

      Yes, ingress is a global resource. One ingress controller can be used to create ingresses in any namespace

    • @philippsagalovich8170
      @philippsagalovich8170 2 года назад

      @@AntonPutra is there other way? id possible point inside the ingress serviceName in next format - ..svc.cluster.local -????

    • @AntonPutra
      @AntonPutra  2 года назад

      @@philippsagalovich8170 you mean one ingresses and different namespaces? you can create external name as I did in the video. Generally not recomended

    • @fil1806
      @fil1806 2 года назад

      @@AntonPutra what u recommend? How to share lb to some namespaces. We have a lot of namespaces and now in default namespace about 100 external services….

    • @AntonPutra
      @AntonPutra  2 года назад

      @@fil1806 oh, it's pretty standard, you need a single LB for ingress, then you can create ingresses in all your namespaces. They will share the single load balancer.

  • @LalitYadav-eo4hv
    @LalitYadav-eo4hv 2 года назад

    Helm version: v3.6.3

    • @AntonPutra
      @AntonPutra  2 года назад

      you need to install prometheus before ingress, since it uses CRD - ServiceMonitor.

    • @LalitYadav-eo4hv
      @LalitYadav-eo4hv 2 года назад

      @@AntonPutra i believe I followed the same steps, let me try again today. Thank u for ur reply really appreciated

  • @user-iz7lf9wm3i
    @user-iz7lf9wm3i 2 года назад

    Тебе как вообще умудрилось в айти залететь?

    • @AntonPutra
      @AntonPutra  2 года назад +1

      4 years of college :) I got Computer Science degree from University of Pittsburgh then moved to Silicon Valley (sorry I don't have Russian keyboard)