Kubernetes create a load balancer, for each service; automatically in GCE. How can I manage something similar on AWS?
Kubernetes service basically use the kubeproxy to handle the internal traffic. But that kubeproxy ip its do not have access to the external network.
There its a way to accomplish this?
In your service definition, set its
type
field toLoadBalancer
, and kubernetes will automatically create an AWS Elastic Load Balancer for you if you're running on AWS. This feature should work on GCE/GKE, AWS, and OpenStack.For an example, check out the guestbook-go example.
Minimal example:
The relevant docs:
As of writing the best way to learn about all the
service.beta.kubernetes.io
annotations is to read the source code:For the controller to be able to manage the ELB it will need permissions set in the master instances IAM Role, e.g.:
The cloud provider should be set with
--cloud-provider=aws
on kube-apiserver.