website/docs/user-guide/load-balancer.md

74 lines
1.9 KiB
Markdown

---
---
* TOC
{:toc}
## Overview
When creating a service, you have the option of automatically creating a
network load balancer. This provides an
externally-accessible IP address that sends traffic to the correct port on your
cluster nodes.
## Configuration file
To create an external load balancer, add the following line to your
[service configuration file](/docs/services/operations/#service-configuration-file):
"type": "LoadBalancer"
Your configuration file might look like:
{
"kind": "Service",
"apiVersion": "v1",
"metadata": {
"name": "example-service"
},
"spec": {
"ports": [{
"port": 8765,
"targetPort": 9376,
}],
"selector": {
"app": "example"
},
"type": "LoadBalancer"
}
}
## Using kubectl
You can alternatively create the service with the `kubectl expose` command and
its `--type=LoadBalancer` flag:
$ kubectl expose rc example --port=8765 --target-port=9376 \
--name=example-service --type=LoadBalancer
This command creates a new service using the same selectors as the referenced
resource (in the case of the example above, a replication controller named
`example`.)
For more information, including optional flags, refer to the
[`kubectl expose` reference](/docs/user-guide/kubectl/kubectl_expose/).
## Finding your IP address
You can find the IP address created for your service by getting the service
information through `kubectl`:
$ kubectl describe services example-service
Name: example-service
Selector: app=example
Type: LoadBalancer
IP: 10.67.252.103
LoadBalancer Ingress: 123.45.678.9
Port: <unnamed> 80/TCP
NodePort: <unnamed> 32445/TCP
Endpoints: 10.64.0.4:80,10.64.1.5:80,10.64.2.4:80
Session Affinity: None
No events.
The IP address is listed next to `LoadBalancer Ingress`.