74 lines
1.9 KiB
Markdown
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`.
|