Created new task page - Running Pods on Only Some Nodes (#39972)

* Added pod-some-nodes in manage-daemon of taskks

* Changedd the code file reference

* Added the code ouput

* Added the suggested changes

* Update content/en/docs/tasks/manage-daemon/pods-some-nodes.md

Co-authored-by: Nitish Kumar <justnitish06@gmail.com>

* Suggested changes

* Update content/en/docs/tasks/manage-daemon/pods-some-nodes.md

Co-authored-by: Rey Lejano <rlejano@gmail.com>

* Update content/en/docs/tasks/manage-daemon/pods-some-nodes.md

Co-authored-by: Tim Bannister <tim@scalefactory.com>

* Update content/en/docs/tasks/manage-daemon/pods-some-nodes.md

Co-authored-by: Tim Bannister <tim@scalefactory.com>

* Update content/en/docs/tasks/manage-daemon/pods-some-nodes.md

Co-authored-by: Tim Bannister <tim@scalefactory.com>

* Update content/en/docs/tasks/manage-daemon/pods-some-nodes.md

Co-authored-by: Tim Bannister <tim@scalefactory.com>

---------

Co-authored-by: Nitish Kumar <justnitish06@gmail.com>
Co-authored-by: Rey Lejano <rlejano@gmail.com>
Co-authored-by: Tim Bannister <tim@scalefactory.com>
pull/41051/head
Dhairya-Arora01 2023-05-10 07:28:59 +05:30 committed by GitHub
parent a32bff3813
commit cae9b11262
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 81 additions and 0 deletions

View File

@ -0,0 +1,61 @@
---
title: Running Pods on Only Some Nodes
content_type: task
weight: 30
---
<!-- overview -->
This page demonstrates how can you run {{<glossary_tooltip term_id="pod" text="Pods">}} on only some {{<glossary_tooltip term_id="node" text="Nodes">}} as part of a {{<glossary_tooltip term_id="daemonset" text="DaemonSet">}}
## {{% heading "prerequisites" %}}
{{< include "task-tutorial-prereqs.md" >}}
## Running Pods on only some Nodes
Imagine that you want to run a {{<glossary_tooltip term_id="daemonset" text="DaemonSet">}}, but you only need to run those daemon pods
on nodes that have local solid state (SSD) storage. For example, the Pod might provide cache service to the
node, and the cache is only useful when low-latency local storage is available.
### Step 1: Add labels to your nodes
Add the label `ssd=true` to the nodes which have SSDs.
```shell
kubectl label nodes example-node-1 example-node-2 ssd=true
```
### Step 2: Create the manifest
Let's create a {{<glossary_tooltip term_id="daemonset" text="DaemonSet">}} which will provision the daemon pods on the SSD labeled {{<glossary_tooltip term_id="node" text="nodes">}} only.
Next, use a `nodeSelector` to ensure that the DaemonSet only runs Pods on nodes
with the `ssd` label set to `"true"`.
{{<codenew file="controllers/daemonset-label-selector.yaml">}}
### Step 3: Create the DaemonSet
Create the DaemonSet from the manifest by using `kubectl create` or `kubectl apply`
Let's label another node as `ssd=true`.
```shell
kubectl label nodes example-node-3 ssd=true
```
Labelling the node automatically triggers the control plane (specifically, the DaemonSet controller)
to run a new daemon pod on that node.
```shell
kubectl get pods -o wide
```
The output is similar to:
```
NAME READY STATUS RESTARTS AGE IP NODE
<daemonset-name><some-hash-01> 1/1 Running 0 13s ..... example-node-1
<daemonset-name><some-hash-02> 1/1 Running 0 13s ..... example-node-2
<daemonset-name><some-hash-03> 1/1 Running 0 5s ..... example-node-3
```

View File

@ -0,0 +1,20 @@
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: ssd-driver
labels:
app: nginx
spec:
selector:
matchLabels:
app: ssd-driver-pod
template:
metadata:
labels:
app: ssd-driver-pod
spec:
nodeSelector:
ssd: "true"
containers:
- name: example-container
image: example-image