Merge pull request #250 from vishh/localcluster

Fix several issues with the local docker based cluster documentation.
pull/254/head
johndmulhausen 2016-03-25 17:08:39 -07:00
commit d3cd373942
1 changed files with 32 additions and 21 deletions

View File

@ -28,6 +28,7 @@ docker run \
--net=host \ --net=host \
--pid=host \ --pid=host \
--privileged=true \ --privileged=true \
--name=kubelet \
-d \ -d \
gcr.io/google_containers/hyperkube-amd64:v${K8S_VERSION} \ gcr.io/google_containers/hyperkube-amd64:v${K8S_VERSION} \
/hyperkube kubelet \ /hyperkube kubelet \
@ -120,59 +121,69 @@ Now run `docker ps` you should see nginx running. You may need to wait a few mi
kubectl expose deployment nginx --port=80 kubectl expose deployment nginx --port=80
``` ```
Run the following command to obtain the IP of this service we just created. There are two IPs, the first one is internal (CLUSTER_IP), and the second one is the external load-balanced IP (if a LoadBalancer is configured) Run the following command to obtain the cluster local IP of this service we just created:
```shell ```shell{% raw %}
kubectl get svc nginx ip=$(kubectl get svc nginx --template={{.spec.clusterIP}})
``` echo $ip
{% endraw %}```
Alternatively, you can obtain only the first IP (CLUSTER_IP) by running: Hit the webserver with this IP:
```shell{% raw %} ```shell{% raw %}
kubectl get svc nginx --template={{.spec.clusterIP}} kubectl get svc nginx --template={{.spec.clusterIP}}
{% endraw %}``` {% endraw %}```
Hit the webserver with the first IP (CLUSTER_IP): On OS X, since docker is running inside a VM, run the following command instead:
```shell ```shell
curl <insert-cluster-ip-here> docker-machine ssh `docker-machine active` curl $ip
``` ```
Note that you will need run this curl command on your boot2docker VM if you are running on OS X.
## Deploy a DNS ## Deploy a DNS
See [here](/docs/getting-started-guides/docker-multinode/deployDNS/) for instructions. See [here](/docs/getting-started-guides/docker-multinode/deployDNS/) for instructions.
### A note on turning down your cluster ### Turning down your cluster
Many of these containers run under the management of the `kubelet` binary, which attempts to keep containers running, even if they fail. So, in order to turn down 1. Delete all the containers including the kubelet:
the cluster, you need to first kill the kubelet container, and then any other containers.
Many of these containers run under the management of the `kubelet` binary, which attempts to keep containers running, even if they fail.
So, in order to turn down the cluster, you need to first kill the kubelet container, and then any other containers.
You may use `docker kill $(docker ps -aq)`, note this removes _all_ containers running under Docker, so use with caution. You may use `docker kill $(docker ps -aq)`, note this removes _all_ containers running under Docker, so use with caution.
2. Cleanup the filesystem:
On OS X, first ssh into the docker VM:
```shell
docker-machine ssh `docker-machine active`
```
```shell
sudo umount `cat /proc/mounts | grep /var/lib/kubelet | awk '{print $2}'`
sudo rm -rf /var/lib/kubelet
```
### Troubleshooting ### Troubleshooting
#### Node is in `NotReady` state #### Node is in `NotReady` state
If you see your node as `NotReady` it's possible that your OS does not have memcg and swap enabled. If you see your node as `NotReady` it's possible that your OS does not have memcg enabled.
1. Your kernel should support memory and swap accounting. Ensure that the 1. Your kernel should support memory accounting. Ensure that the
following configs are turned on in your linux kernel: following configs are turned on in your linux kernel:
```shell ```shell
CONFIG_RESOURCE_COUNTERS=y CONFIG_RESOURCE_COUNTERS=y
CONFIG_MEMCG=y CONFIG_MEMCG=y
CONFIG_MEMCG_SWAP=y
CONFIG_MEMCG_SWAP_ENABLED=y
CONFIG_MEMCG_KMEM=y
``` ```
2. Enable the memory and swap accounting in the kernel, at boot, as command line 2. Enable the memory accounting in the kernel, at boot, as command line
parameters as follows: parameters as follows:
```shell ```shell
GRUB_CMDLINE_LINUX="cgroup_enable=memory swapaccount=1" GRUB_CMDLINE_LINUX="cgroup_enable=memory=1"
``` ```
NOTE: The above is specifically for GRUB2. NOTE: The above is specifically for GRUB2.
@ -181,5 +192,5 @@ parameters as follows:
```shell ```shell
$ cat /proc/cmdline $ cat /proc/cmdline
BOOT_IMAGE=/boot/vmlinuz-3.18.4-aufs root=/dev/sda5 ro cgroup_enable=memory swapaccount=1 BOOT_IMAGE=/boot/vmlinuz-3.18.4-aufs root=/dev/sda5 ro cgroup_enable=memory=1
``` ```