Hey guys, does anyone know what is the best way to expose an eks cluster using pulumi? im installing an app with it's helm chart and i want to expose it to the internet but when using servicetype loadbalancer aws creates a classic lb. i want it all to be done inside the pulumi code. anyone have an idea?
08/29/2022, 12:27 PM
So you don’t want the Kubernetes-managed LB? It’s possible to manually (outside of Kubernetes) create an LB and then connect that to Kubernetes, but generally you’re better off letting Kubernetes manage it.
08/29/2022, 12:31 PM
Hey Scott, Thanks for the response! Im quite new to the entire k8s side of things, so how do i connect an external lb to my eks cluster? Or how do i expose my services with pulumi kubernetes?
By managed k8s you mean using a LoadBalancer Service type?
08/29/2022, 1:31 PM
When I say “Kubernetes-managed LB,” I’m talking about an LB created and managed on behalf of a Service of type LoadBalancer. When you create the Service, an LB is created automatically and all the necessary plumbing is done; when you delete the Service, the LB is destroyed automatically.
While it’s possible to do this yourself (create the LB, add the listener(s), add the targets, etc.) it is much easier (and more idiomatic) to let Kubernetes handle it as part of the Service lifecycle.
You can use Pulumi’s Kubernetes provider (along with the EKS provider) to automatically create the Service, although it’s entirely possible that the Helm chart already does that; I don’t have enough details about your Helm chart to know for certain.
08/29/2022, 2:03 PM
Same principle also applies to DNS records - let K8s manage them.