* Adding reference to node concept page. This page discuss about assigning pods to the node but missing reference to the node concept page. So for better navigation added this reference in what's next section * Correcting syntax Correcting syntax * Adding glossary tooltip for 'node' Adding glossary tooltip for 'node'
3.0 KiB
title, content_template, weight
| title | content_template | weight |
|---|---|---|
| Assign Pods to Nodes | templates/task | 120 |
{{% capture overview %}} This page shows how to assign a Kubernetes Pod to a particular node in a Kubernetes cluster. {{% /capture %}}
{{% capture prerequisites %}}
{{< include "task-tutorial-prereqs.md" >}} {{< version-check >}}
{{% /capture %}}
{{% capture steps %}}
Add a label to a node
-
List the {{< glossary_tooltip term_id="node" text="nodes" >}} in your cluster, along with their labels:
kubectl get nodes --show-labelsThe output is similar to this:
NAME STATUS ROLES AGE VERSION LABELS worker0 Ready <none> 1d v1.13.0 ...,kubernetes.io/hostname=worker0 worker1 Ready <none> 1d v1.13.0 ...,kubernetes.io/hostname=worker1 worker2 Ready <none> 1d v1.13.0 ...,kubernetes.io/hostname=worker2 -
Chose one of your nodes, and add a label to it:
kubectl label nodes <your-node-name> disktype=ssdwhere
<your-node-name>is the name of your chosen node. -
Verify that your chosen node has a
disktype=ssdlabel:kubectl get nodes --show-labelsThe output is similar to this:
NAME STATUS ROLES AGE VERSION LABELS worker0 Ready <none> 1d v1.13.0 ...,disktype=ssd,kubernetes.io/hostname=worker0 worker1 Ready <none> 1d v1.13.0 ...,kubernetes.io/hostname=worker1 worker2 Ready <none> 1d v1.13.0 ...,kubernetes.io/hostname=worker2In the preceding output, you can see that the
worker0node has adisktype=ssdlabel.
Create 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.
{{< codenew file="pods/pod-nginx.yaml" >}}
-
Use the configuration file to create a pod that will get scheduled on your chosen node:
kubectl apply -f https://k8s.io/examples/pods/pod-nginx.yaml -
Verify that the pod is running on your chosen node:
kubectl get pods --output=wideThe output is similar to this:
NAME READY STATUS RESTARTS AGE IP NODE nginx 1/1 Running 0 13s 10.200.0.4 worker0
Create a pod that gets scheduled to specific node
You can also schedule a pod to one specific node via setting nodeName.
{{< codenew file="pods/pod-nginx-specific-node.yaml" >}}
Use the configuration file to create a pod that will get scheduled on foo-node only.
{{% /capture %}}
{{% capture whatsnext %}}
- Learn more about labels and selectors.
- Learn more about nodes. {{% /capture %}}