Difference between revisions of "Spec.NodeSelector"
Jump to navigation
Jump to search
(10 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
{{lc}} | {{lc}} | ||
+ | * https://www.eksworkshop.com/beginner/140_assigning_pods/node_selector/ | ||
* https://kubernetes.io/docs/tasks/configure-pod-container/assign-pods-nodes/#create-a-pod-that-gets-scheduled-to-your-chosen-node | * https://kubernetes.io/docs/tasks/configure-pod-container/assign-pods-nodes/#create-a-pod-that-gets-scheduled-to-your-chosen-node | ||
Line 9: | Line 10: | ||
env: test | env: test | ||
spec: | spec: | ||
− | containers: | + | [[containers:]] |
- name: nginx | - name: nginx | ||
image: nginx | image: nginx | ||
Line 38: | Line 39: | ||
</pre> | </pre> | ||
+ | == [[Karpenter]] == | ||
+ | nodeSelector: | ||
+ | [[topology.kubernetes.io/]]zone: us-west-2a | ||
+ | [[karpenter.sh/capacity-type]]: spot | ||
+ | |||
+ | nodeSelector: | ||
+ | [[karpenter.sh/provisioner-name:]] XXXXX | ||
+ | |||
+ | == DaemonSet == | ||
+ | Stop [[DaemonSet]] by appliying a [[nodeSelector]] | ||
+ | * <code>[[kubectl patch]] daemonset <name-of-daemon-set> -p '{"spec": {"template": {"spec": {"nodeSelector": {"non-existing": "true"}}}}}'</code> | ||
+ | Start [[DaemonSet]] by removing the [[nodeSelector]] : | ||
+ | * <code>kubectl patch daemonset <name-of-daemon-set> --type json -p='[{"op": "remove", "path": "[[/spec/template/spec/nodeSelector/]]non-existing"}]'</code> | ||
== Activities == | == Activities == | ||
Line 51: | Line 65: | ||
* <code>[[nodeAffinity]]</code> | * <code>[[nodeAffinity]]</code> | ||
* [[Kubernetes Pod Topology Spread Constraints]] | * [[Kubernetes Pod Topology Spread Constraints]] | ||
+ | * <code>[[selector:]]</code> | ||
== See also == | == See also == | ||
* {{K8s nodes}} | * {{K8s nodes}} | ||
* {{Pods}} | * {{Pods}} | ||
+ | * {{affinity}} | ||
[[Category:Kubernetes]] | [[Category:Kubernetes]] |
Latest revision as of 07:22, 25 July 2024
apiVersion: v1 kind: Pod metadata: name: nginx labels: env: test spec: containers: - name: nginx image: nginx imagePullPolicy: IfNotPresent nodeSelector: disktype: ssd
apiVersion: v1 kind: Pod metadata: name: nginx spec: nodeName: foo-node # schedule pod to specific node containers: - name: nginx image: nginx imagePullPolicy: IfNotPresent
Karpenter[edit]
nodeSelector: topology.kubernetes.io/zone: us-west-2a karpenter.sh/capacity-type: spot
nodeSelector: karpenter.sh/provisioner-name: XXXXX
DaemonSet[edit]
Stop DaemonSet by appliying a nodeSelector
kubectl patch daemonset <name-of-daemon-set> -p '{"spec": {"template": {"spec": {"nodeSelector": {"non-existing": "true"}}}}}'
Start DaemonSet by removing the nodeSelector :
kubectl patch daemonset <name-of-daemon-set> --type json -p='[{"op": "remove", "path": "/spec/template/spec/nodeSelector/non-existing"}]'
Activities[edit]
- CKA v1.21: Understand how to use Labels, Selector and Annotations
- CKA v1.18: Use label selectors to schedule Pods
- CKA v1.15: Understand how to use Labels, Selector and Annotations
- Use
NodeSelector
assign pod to specific node
Related terms[edit]
- Kubernetes scheduling
kubectl label
kubectl apply
nodeAffinity
- Kubernetes Pod Topology Spread Constraints
selector:
See also[edit]
- Kubernetes nodes,
node.kubernetes.io
K8s Node controller (node-controller),MemoryPressure, DiskPressure, NodeHasDiskPressure, events, NodeNotReady
, Node-pressure Eviction, RemovingNode, ProviderID,kubectl node-shell, kubectl describe nodes
- Pods:
kubectl apply
,kubectl [ pod get | top | delete | describe pods ]
,InitContainers, PodInitializing, CrashLoopBackOff, ImagePullPolicy:, NodeAffinity, NodeSelector, Terminated
- Kubernetes pod affinity and anti affinity, Kubernetes Node Affinity,
default-scheduler, affinity:, NodeAffinity, spec.affinity.podAntiAffinity
Advertising: