AWS Load Balancer Controller Tutorial (TLS): AWS EKS Kubernetes Tutorial - Part 6

  Рет қаралды 6,437

Anton Putra

Anton Putra

Күн бұрын

Пікірлер: 61
@AntonPutra
@AntonPutra 5 ай бұрын
🔴 - To support my channel, I’d like to offer Mentorship/On-the-Job Support/Consulting - me@antonputra.com 👉 [Playlist] AWS EKS Kubernetes Tutorial: kzbin.info/aero/PLiMWaCMwGJXnKY6XmeifEpjIfkWRo9v2l&si=wc6LIC5V2tD-Tzwl 👉 Kubernetes Tutorial for Beginners [Full Course]: kzbin.info/aero/PLiMWaCMwGJXkYKFa_x0Ch38uznuv-4c3l 👉 AWS EKS Tutorial for Beginners [Full Course]: kzbin.info/www/bejne/oajUanicerGMf6s 👉 Other Kubernetes Tutorials: kzbin.info/aero/PLiMWaCMwGJXnKY6XmeifEpjIfkWRo9v2l
@GabrielPozo
@GabrielPozo 5 ай бұрын
This playlist is pure gold!
@AntonPutra
@AntonPutra 5 ай бұрын
Three more to go! 😀
@GabrielPozo
@GabrielPozo 5 ай бұрын
@@AntonPutra 👏👏👏
@niclelin4568
@niclelin4568 Ай бұрын
love you, you are professional, finally I understand ALB and ngress. thank you !!! I know how load balancer work now
@AntonPutra
@AntonPutra Ай бұрын
thanks! 😊
@VicioGaming
@VicioGaming 5 ай бұрын
Absolutly loving this series, so happy that i've found it right when i wanted to setup my own eks cluster I'd like to see how deploying multiple apps would work with your guide, like Grafana, Prometheus and Loki for example, exposed with subdomain but also accessible from within the cluster by other services. Don't see that in the additional sections you've commented Keep up the good work!
@AntonPutra
@AntonPutra 5 ай бұрын
Thank you! I have few additional lessons on EKS that will cover client side VPN + Private Route 53 hosted zones and internal Ingresses (pushing private DNS as VPN config)
@csmithDevCove
@csmithDevCove 5 ай бұрын
dude you are rocking it. Thanks for this playlist.
@AntonPutra
@AntonPutra 5 ай бұрын
@yessinerekik4071
@yessinerekik4071 3 ай бұрын
Great playlist! I'm running into this error that shows up only in the aws-lbc-controller: "msg":"Reconciler error","controller":"service","namespace":"5-example","name":"myapp","reconcileID":"some-id","error":"NoCredentialProviders: no valid providers in chain. Deprecated. Any guidance would be appreciated, Thanks!
@AntonPutra
@AntonPutra 3 ай бұрын
Thanks! That means you misconfigured access to your load balancer controller. Double-check everything in this file - github.com/antonputra/tutorials/blob/main/lessons/196/terraform/15-aws-lbc.tf.
@thiagoscodeler5152
@thiagoscodeler5152 3 ай бұрын
Great content again. Do you see any scenario that would benefit of using Application Load Balancer + Traefik or Nginx? For example the Load Balancer default route to Traefik and it takes care of the service forwarding.
@AntonPutra
@AntonPutra 3 ай бұрын
ALB is more expensive and slower since it needs to parse HTTP requests in order to route them. It is possible to use it, but I wouldn't unless I have a very specific requirement that only this combination could solve.
@thiagoscodeler5152
@thiagoscodeler5152 3 ай бұрын
@@AntonPutra I was thinking more like having TLS termination on ALB using ACM instead of using traefik(let's encrypt) for that. Then having traefik just for routing to the services running into EKS
@AntonPutra
@AntonPutra 3 ай бұрын
@@thiagoscodeler5152 Why not to terminate TLS on the Network Load Balancer? It also supports that - aws.amazon.com/blogs/aws/new-tls-termination-for-network-load-balancers/
@twizzoe
@twizzoe 5 ай бұрын
Loving these playlist
@AntonPutra
@AntonPutra 5 ай бұрын
❤️
@RAHUL841991
@RAHUL841991 3 ай бұрын
Nice Video and very informative i took a bit different approach to do this not sure if it is correct I create the necessary ALB using terraform and target group creation is done using CRD's CustomResourceDefinition target group controller which creates target group for alb and maps pod ip to target group
@AntonPutra
@AntonPutra 3 ай бұрын
It's a totally valid approach. In this way, you don't need to delete the ALB Helm chart before you tear down your cluster.
@RAHUL841991
@RAHUL841991 3 ай бұрын
@@AntonPutra Thanks
@ZergStylexDD
@ZergStylexDD 5 ай бұрын
Thank you for the lesson! I have one question about certificates. Are there any ways to automate this, just like we can do with cert-manager + nginx ingress? If we don't want to store the certificate ARN directly in the kubernetes manifests... Because it seems to me that it's not very error-resistant in this case and we need always to update it manually in case of changing the certificate ARN for some reason
@AntonPutra
@AntonPutra 5 ай бұрын
One way I can think of doing this is to create a higher abstraction. For example, to create and validate a certificate, you can use Terraform. Then, you can pass the ARN of the certificate from Terraform to the Helm chart as an argument responsible for deploying your application. The AWS Load Balancer Controller by itself does not provide any options to automate this.
@fernandocardenasm
@fernandocardenasm Күн бұрын
Thanks!
@AntonPutra
@AntonPutra 11 сағат бұрын
thank you!!
@arunreddy1436
@arunreddy1436 5 ай бұрын
Thank you So much Genius, Could you please help me with ordered steps involved to upgrade eks cluster briefly ... i have followed below steps . could u pls validate and correct me if the order is not proper. 1. backup (kubectl get all --A -o yaml > backup.yaml 2. upgrade control plane throu aws console 3. upgrade node groups 4. upgrade addons (each verison at a time) by preserving 5. validate coredns etc...
@AntonPutra
@AntonPutra 5 ай бұрын
Seems correct. However, from time to time, Kubernetes deprecates some APIs. For example, it deprecated the Ingress beta API. So, you should check before upgrading your cluster to see if you have anything that needs to be updated.
@aidakhalelova3376
@aidakhalelova3376 4 ай бұрын
Hello, Anton. Thank you for tutorials. One question I have, I installed argocd on EKS fargate, and not sure how to access UI. I am assuming the only way to access it is by creating ingress which creates public LB. But according to this demo it is not recommended to. provision public LB for internal tools.
@AntonPutra
@AntonPutra 4 ай бұрын
Hi, no matter what, never expose your internal services to the internet. The best option is to create a private ingress. You can configure it using annotations on the ingress resource, but you also need to set up a client VPN and push private Route 53 hosted zones to your machine. It's not difficult; take a look at AWS Client VPN managed service. The second best option is to port forward each time, but it's annoying.
@aidakhalelova3376
@aidakhalelova3376 4 ай бұрын
@@AntonPutra thank you, it is actually what I ended up doing.
@AntonPutra
@AntonPutra 4 ай бұрын
@@aidakhalelova3376 no problem, i have a little old tutorial but here is a source code for setting up self hosted openvpn and pushing routes & dns - github.com/antonputra/tutorials/tree/main/lessons/084
@juanroldan1989
@juanroldan1989 3 ай бұрын
Amazing tutorial and tracklist Anton, you rock ! - I'm facing an issue regarding AWS LBC when it comes to generating load balancers for my service on "5-example" folder: Failed build model due to AccessDenied: User: arn:aws:sts:::assumed-role/staging-demo-eks-nodes/i- is not authorized to perform: elasticloadbalancing:DescribeLoadBalancers because no identity-based policy allows the elasticloadbalancing:DescribeLoadBalancers action - Since I did create the AWS LBC verbatim as your tutorial also using the "AWSLoadBalancerController" json file for these permissions, I'm not sure what could I've done wrong here? Any suggestions? Really appreciated : )
@AntonPutra
@AntonPutra 3 ай бұрын
thanks! based on this error "rn:aws:sts:::assumed-role/staging-demo-eks-nodes/i-" looks like your service trying to assume default k8s node role, meaning you misconfigured access. Double check namespace, and service account name for the k8s
@juanroldan1989
@juanroldan1989 3 ай бұрын
@@AntonPutra thank you for your response ! I've managed to solve it by `terraform destroy` and `terraform apply` all over again. It might have been an error on my side when creating the kubernetes groups. Thank you so much for all your effort and videos ! It is truly top quality : ) Cheers from The Netherlands !
@AntonPutra
@AntonPutra 3 ай бұрын
@@juanroldan1989 cool, thanks!
@murugesannarayanasamy8756
@murugesannarayanasamy8756 5 ай бұрын
Excellent !! It will be helpful if you share the exact link for git to get the terraform code.
@AntonPutra
@AntonPutra 5 ай бұрын
thanks, it's in description - github.com/antonputra/tutorials/tree/main/lessons/195
@fernandocardenasm
@fernandocardenasm Күн бұрын
Great content! I'm following the tutorial and pretty much copying pasting the GitHub code. When I try to create the resource "helm_release" "aws_lbc", it hangs and doesn't create the lbc correctly. But, if I set vpcId for the resource, it gets created. However, then when applying the deployment and service the external ip doesn't get created (so, registered target remains 0). Would you have any hint how to investigate this?
@fernandocardenasm
@fernandocardenasm 10 сағат бұрын
Actually, this was solved by removing the Terraform files and doing a clean Terraform init and applying again.
@nebolos
@nebolos 2 ай бұрын
The playlist has been smooth up till this point. Also have an issue with the alb. Deployed both Terraform and kubectl apply -f 5-example: no errors but ALB isn't deployed. where do I look for errors to understand why it didn't deploy?
@AntonPutra
@AntonPutra 2 ай бұрын
best way to find the errors is in the aws load balancer controller logs, example "kubectl logs -f aws-load-balancer-controller-78556cfd88-zb4gc -n kube-system" pls let me know when you find the issue if i need to update anything
@prashlovessamosa
@prashlovessamosa 5 ай бұрын
Thanks 🙏
@AntonPutra
@AntonPutra 5 ай бұрын
welcome!
@jesdavidgomez
@jesdavidgomez 5 ай бұрын
Hi, very good playlist, thanks a lot. I am facing an error when I try to install alb controller: "unable to initialize AWS cloud","error":"failed to introspect vpcID from EC2Metadata or Node name, specify --aws-vpc-id instead if EC2Metadata", I am using the same scripts, The only difference is the cluster version, I am using 1.30.
@AntonPutra
@AntonPutra 5 ай бұрын
try to use the latest helm chart version for the aws load balancer controller, I'll test 1.30 in about a week and update the terraform code Run to get the latest verion: helm repo update helm search repo aws-load-balancer-controller
@jesdavidgomez
@jesdavidgomez 5 ай бұрын
@@AntonPutra Hi, I try with 1.8.2 version, but it doesnt work. So I used cluster version 1.29 and It works. Thanks for your answer.
@AntonPutra
@AntonPutra 5 ай бұрын
@@jesdavidgomez well, eks 1.30 was introduce a week or two ago, maybe it wasn't enough time to update load balancer controller. But like I said I'll be updating source code for this playlist 1 or 2 times a month moving forward.
@epgui
@epgui 4 ай бұрын
For what it's worth, I seem to be running into the same issue no matter which version of EKS and the ALB controller I pick. (Edit: I had to provide the VPC ID, and then it worked.)
@AntonPutra
@AntonPutra 4 ай бұрын
@@epgui yes, for 1.30 you need to provide vpc id - github.com/antonputra/tutorials/blob/main/lessons/196/terraform/15-aws-lbc.tf#L57-L60
@tomvice
@tomvice 5 ай бұрын
Apps can use the same ALB with a simple groupname annotation
@AntonPutra
@AntonPutra 5 ай бұрын
They can, but there are some limitations - kubernetes-sigs.github.io/aws-load-balancer-controller/v2.8/guide/ingress/annotations/#ingressgroup
@kalpeshkolap3525
@kalpeshkolap3525 5 ай бұрын
is there any video available for eks security group ?
@AntonPutra
@AntonPutra 5 ай бұрын
Is there anything specific you are interested in? In part 9, I use EKS security groups to allow access to the EFS file system. Something like this: resource "aws_efs_mount_target" "zone_a" { file_system_id = aws_efs_file_system.eks.id subnet_id = aws_subnet.private_zone1.id security_groups = [aws_eks_cluster.eks.vpc_config[0].cluster_security_group_id] }
@kalpeshkolap3525
@kalpeshkolap3525 5 ай бұрын
@@AntonPutra yes sir like pod security group means you can directly attach security groups to pods and like how to attach security group to eks using terraform
@AntonPutra
@AntonPutra 5 ай бұрын
@@kalpeshkolap3525 got it will do- docs.aws.amazon.com/eks/latest/userguide/security-groups-for-pods.html
@mwanthidaniel1254
@mwanthidaniel1254 2 ай бұрын
Hello @AntonPutra Why is the controller unable to retrieve the VPC ID from the EC2 instance metadata the instance automatically yet the nodegroup iam role includes `AmazonEKSWorkerNodePolicy` policy as well as the controller iam policy includes all permissions? aws-load-balancer-controller-5675bcffbb-mpz7z 0/1 CrashLoopBackOff 1 (11s ago) 19s ### POD LOGS {"level":"info","ts":"2024-08-29T15:23:19Z","msg":"version","GitVersion":"v2.7.2","GitCommit":"fb6460383b75e937e24548e69b6732f49b88755c","BuildDate":"2024-03-22T21:39:56+0000"} {"level":"error","ts":"2024-08-29T15:23:22Z","logger":"setup","msg":"unable to initialize AWS cloud","error":"failed to introspect vpcID from EC2Metadata or Node name, specify --aws-vpc-id instead if EC2Metadata is unavailable: failed to fetch VPC ID from instance metadata: EC2MetadataError: failed to make EC2Metadata request \tstatus code: 401, request id: "} I had to set it manually for it to work! + set { + name = "vpcId" + value = "vpc-01d18dacf3eb5b62c" # (1 unchanged attribute hidden) } autoscaler-aws-cluster-autoscaler-ffb695cd5-qj4r4 1/1 Running 0 65m How can I avoid this (passn' the vpc as input value to the chart)
@AntonPutra
@AntonPutra 2 ай бұрын
it related to recent changes to controller, not you have provide it explicitly. i have updated code - github.com/antonputra/tutorials/blob/main/lessons/196/terraform/15-aws-lbc.tf#L58-L59
Expose Kubernetes Services Running on Amazon EKS (9 Ways)
32:44
Anton Putra
Рет қаралды 12 М.
REAL MAN 🤣💪🏻
00:35
Kan Andrey
Рет қаралды 11 МЛН
Wait for it 😂
00:19
ILYA BORZOV
Рет қаралды 11 МЛН
У вас там какие таланты ?😂
00:19
Карина Хафизова
Рет қаралды 20 МЛН
How Strong is Tin Foil? 💪
00:25
Brianna
Рет қаралды 64 МЛН
Kubernetes Architecture: Deep Dive - Part 2
20:53
Anton Putra
Рет қаралды 5 М.
Setup AWS Application Load Balancer Ingress in Kubernetes (Tutorial)
15:02
Introduction to Kubernetes - Part 1
8:14
Anton Putra
Рет қаралды 7 М.
Elastic Kubernetes Service | Application Load Balancing on EKS
10:21
Do NOT Learn Kubernetes Without Knowing These Concepts...
13:01
Travis Media
Рет қаралды 317 М.
REAL MAN 🤣💪🏻
00:35
Kan Andrey
Рет қаралды 11 МЛН