Skip to content

Commit

Permalink
Describe how to use publicIPs to access guestbook externally when not…
Browse files Browse the repository at this point in the history
… using external load balancers
  • Loading branch information
jayunit100 committed Mar 6, 2015
1 parent a8dd10d commit ef946da
Showing 1 changed file with 12 additions and 1 deletion.
13 changes: 12 additions & 1 deletion examples/guestbook/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -368,6 +368,7 @@ The service is described in the file `examples/guestbook/frontend-service.json`:
"apiVersion": "v1beta1",
"port": 8000,
"containerPort": "http-server",
"publicIPs":["10.11.22.33"],
"selector": {
"name": "frontend"
},
Expand All @@ -378,6 +379,10 @@ The service is described in the file `examples/guestbook/frontend-service.json`:
}
```
If running a single node local setup, or single VM, you don't need `createExternalLoadBalancer`, nor do you need `publicIPs`.
Read the *Accessing the guestbook site externally* section below for details and set 10.11.22.33 accordingly (for now, you can
delete these parameters or run this - either way it won't hurt anything to have both parameters the way they are).
```shell
$ kubectl create -f examples/guestbook/frontend-service.json
frontend
Expand Down Expand Up @@ -412,7 +417,13 @@ For GCE details about limiting traffic to specific sources, see the [GCE firewal
[cloud-console]: https://console.developer.google.com
[gce-firewall-docs]: https://cloud.google.com/compute/docs/networking#firewalls
In other environments, you can get the service IP from looking at the output of `kubectl get pods,services`, and modify your firewall using standard tools and services (firewalld, iptables, selinux) which you are already familar with.
### Accessing the guestbook site externally.
The pods that we have set up are reachable through the frontend service, but you'll notice that 10.0.93.211 (the IP of the frontend service is unavailable from outside of kubernetes, unless, of course, you are running kubernetes minions locally, in which case the host port binding will allow you to reach the guestbook website at localhost:8000.
Unless you have access to the `createExternalLoadBalancer` feature (cloud provider specific), you will want to set up a publicIP on a minion, so that the service can be accessed from outside of the internal kubernetes network. This is quite easy. You simply look at you're list of kubelet IP addresses, and update the service file to include a `publicIPs` string, which is mapped to an IP address of any number of your existing kubelets. This will allow all you're kubelets to act as external entry points to the service (translation: this will allow you to browse the guestbook site at your kubelet IP address from your browser).
If you are more advanced in the ops arena, note you can manually get the service IP from looking at the output of `kubectl get pods,services`, and modify your firewall using standard tools and services (firewalld, iptables, selinux) which you are already familar with.
And of course, finally, if you are running Kubernetes locally, you can just visit http://localhost:8000.
Expand Down

0 comments on commit ef946da

Please sign in to comment.