From 53933e173803c03ac5665aecea2fd044c1288b5f Mon Sep 17 00:00:00 2001 From: steveperry-53 Date: Thu, 29 Sep 2016 13:43:54 -0700 Subject: [PATCH] Create task page: Assigning Pods to Nodes. --- _data/tasks.yml | 4 + .../administer-cluster/assign-pods-nodes.md | 87 +++++++++++++++++++ docs/tasks/administer-cluster/pod.yaml | 13 +++ docs/tasks/index.md | 3 + docs/tutorials/index.md | 2 +- 5 files changed, 108 insertions(+), 1 deletion(-) create mode 100644 docs/tasks/administer-cluster/assign-pods-nodes.md create mode 100644 docs/tasks/administer-cluster/pod.yaml diff --git a/_data/tasks.yml b/_data/tasks.yml index 1019671e66..86209a52aa 100644 --- a/_data/tasks.yml +++ b/_data/tasks.yml @@ -10,4 +10,8 @@ toc: section: - title: Using an HTTP Proxy to Access the Kubernetes API path: /docs/tasks/access-kubernetes-api/http-proxy-access-api/ +- title: Administering a Cluster + section: + - title: Assigning Pods to Nodes + path: /docs/tasks/administer-cluster/assign-pods-nodes/ diff --git a/docs/tasks/administer-cluster/assign-pods-nodes.md b/docs/tasks/administer-cluster/assign-pods-nodes.md new file mode 100644 index 0000000000..894aeddf7d --- /dev/null +++ b/docs/tasks/administer-cluster/assign-pods-nodes.md @@ -0,0 +1,87 @@ +--- +--- + +{% capture overview %} +This page shows how to use an HTTP proxy to access the Kubernetes API. +{% endcapture %} + +{% capture prerequisites %} + +* Install [kubectl](http://kubernetes.io/docs/user-guide/prereqs). + +* Create a Kubernetes cluster, including a running Kubernetes + API server. One way to create a new cluster is to use + [Minikube](/docs/getting-started-guides/minikube). + +* Configure `kubectl` to communicate with your Kubernetes API server. This + configuration is done automatically if you use Minikube. + +{% endcapture %} + +{% capture steps %} + +### Adding a label to a node + +1. List the nodes in your cluster: + + kubectl get nodes + + The output is similar to this: + + NAME STATUS AGE + worker0 Ready 1d + worker1 Ready 1d + worker2 Ready 1d + +1. Chose one of your nodes, and add a label to it: + + kubectl label nodes disktype=ssd + + where is the name of your chosen node. + +1. Verify that your chosen node has a `disktype=ssd` label: + + kubectl get nodes --showlabels + + + The output is similar to this: + + NAME STATUS AGE LABELS + worker0 Ready 1d ...,disktype=ssd,kubernetes.io/hostname=worker0 + worker1 Ready 1d ...,kubernetes.io/hostname=worker1 + worker2 Ready 1d ...,kubernetes.io/hostname=worker2 + + In the preceding output, you can see that the `worker0` node has a + `disktype=ssd` label. + +### Creating a pod that gets scheduled to your chosen node + +This pod configuration file describes a pod that has a node selector, +`disktype: ssd`. This means that the pod will get scheduled on a node that has +a `disktype=ssd` label. + +{% include code.html language="yaml" file="pod.yaml" ghlink="/docs/tasks/administer-cluster/pod.yaml" %} + +1. Use the configuration file to create a pod that will get scheduled on your + chosen node: + + export REPO=https://raw.githubusercontent.com/kubernetes/kubernetes.github.io/master + kubectl create -f $REPO/docs/tasks/administer-cluster/pod.yaml + +1. Verify that the pod is running on your chosen node: + + kubectl get pods --output=wide + + The output is similar to this: + + NAME READY STATUS RESTARTS AGE IP NODE + nginx 1/1 Running 0 13s 10.200.0.4 worker0 + +{% endcapture %} + +{% capture whatsnext %} +Learn more about +[labels and selectors](/docs/user-guide/labels/). +{% endcapture %} + +{% include templates/task.md %} diff --git a/docs/tasks/administer-cluster/pod.yaml b/docs/tasks/administer-cluster/pod.yaml new file mode 100644 index 0000000000..134ddae2aa --- /dev/null +++ b/docs/tasks/administer-cluster/pod.yaml @@ -0,0 +1,13 @@ +apiVersion: v1 +kind: Pod +metadata: + name: nginx + labels: + env: test +spec: + containers: + - name: nginx + image: nginx + imagePullPolicy: IfNotPresent + nodeSelector: + disktype: ssd diff --git a/docs/tasks/index.md b/docs/tasks/index.md index b8fa301fa3..dcd9120e1b 100644 --- a/docs/tasks/index.md +++ b/docs/tasks/index.md @@ -11,6 +11,9 @@ The Tasks section of the Kubernetes documentation is a work in progress * [Using an HTTP Proxy to Access the Kubernetes API](/docs/tasks/access-kubernetes-api/http-proxy-access-api) +#### Administering a Cluster + +* [Assigning Pods to Nodes](/docs/tasks/administer-cluster/assign-pods-nodes/) ### What's next diff --git a/docs/tutorials/index.md b/docs/tutorials/index.md index db1b224364..23400521e7 100644 --- a/docs/tutorials/index.md +++ b/docs/tutorials/index.md @@ -7,7 +7,7 @@ The Tutorials section of the Kubernetes documentation is a work in progress. * [Running a Stateless Application Using a Deployment](/docs/tutorials/stateless-application/run-stateless-application-deployment/) -* [Exposing an External IP Address Using a Service](/docs/tutorials/stateless-application/expose-external-ip-address-service/) +* [Using a Service to Access an Application in a Cluster](/docs/tutorials/stateless-application/expose-external-ip-address-service/) ### What's next