Skip to content

Latest commit

 

History

History
109 lines (71 loc) · 3.91 KB

locally.md

File metadata and controls

109 lines (71 loc) · 3.91 KB

Getting started locally

Requirements

Linux

Not running Linux? Consider running Linux in a local virtual machine with Vagrant, or on a cloud provider like Google Compute Engine

Docker

At least Docker 1.3+. Ensure the Docker daemon is running and can be contacted (try docker ps). Some of the kubernetes components need to run as root, which normally works fine with docker.

etcd

You need an etcd in your path, please make sure it is installed and in your $PATH.

go

You need go in your path, please make sure it is installed and in your $PATH.

Starting the cluster

In a separate tab of your terminal, run the following (since one needs sudo access to start/stop kubernetes daemons, it is easier to run the entire script as root):

cd kubernetes
hack/local-up-cluster.sh

This will build and start a lightweight local cluster, consisting of a master and a single minion. Type Control-C to shut it down.

You can use the cluster/kubectl.sh script to interact with the local cluster. hack/local-up-cluster.sh will print the commands to run to point kubectl at the local cluster.

Running a container

Your cluster is running, and you want to start running containers!

You can now use any of the cluster/kubectl.sh commands to interact with your local setup.

cluster/kubectl.sh get pods
cluster/kubectl.sh get services
cluster/kubectl.sh get replicationControllers
cluster/kubectl.sh run-container my-nginx --image=dockerfile/nginx --replicas=2 --port=80


## begin wait for provision to complete, you can monitor the docker pull by opening a new terminal
  sudo docker images
  ## you should see it pulling the dockerfile/nginx image, once the above command returns it
  sudo docker ps
  ## you should see your container running!
  exit
## end wait

## introspect kubernetes!
cluster/kubectl.sh get pods
cluster/kubectl.sh get services
cluster/kubectl.sh get replicationControllers

Running a user defined pod

Note the difference between a container and a pod. Since you only asked for the former, kubernetes will create a wrapper pod for you. However you can't view the nginx start page on localhost. To verify that nginx is running you need to run curl within the docker container (try docker exec).

You can control the specifications of a pod via a user defined manifest, and reach nginx through your browser on the port specified therein:

cluster/kubectl.sh create -f api/examples/pod.json

Congratulations!

Troubleshooting

I can't reach service IPs on the network.

Some firewall software that uses iptables may not interact well with kubernetes. If you're having trouble around networking, try disabling any firewall or other iptables-using systems, first.

By default the IP range for service portals is 10.0.. - depending on your docker installation, this may conflict with IPs for containers. If you find containers running with IPs in this range, edit hack/local-cluster-up.sh and change the portal_net flag to something else.

I cannot create a replication controller with replica size greater than 1! What gives?

You are running a single minion setup. This has the limitation of only supporting a single replica of a given pod. If you are interested in running with larger replica sizes, we encourage you to try the local vagrant setup or one of the cloud providers.

I changed Kubernetes code, how do I run it?

cd kubernetes
hack/build-go.sh
hack/local-up-cluster.sh

kubectl claims to start a container but get pods and docker ps don't show it.

One or more of the kubernetes daemons might've crashed. Tail the logs of each in /tmp.