peaks-1hrr0s0 has the whole Monster Market defined and almost none of it running. The manifests are in ~/peaks-1hrr0s0/.
sh
kubectl get nodes
kubectl get deploy,ds,pods -n peaks-1hrr0s0 -o widetext
market-web Pending wants a label no node has
market-db Pending wants the ssd node, which is cordoned
market-worker Pending wants the batch node, which is tainted
market-cache 2/4 anti-affinity, one node cordoned, three nodes in total
log-agent 2/3 skips the tainted nodeFor each Pending Pod, kubectl describe pod names the rule it fails. Decide whether to change the node or the workload.
Hints
- web selects
tier=frontend. The intended node ispeaks-node-2; label it, do not edit the Deployment. - db selects
disk=ssd. The node exists and is cordoned; the maintenance is over. - worker must run on
peaks-node-3, which is tainteddedicated=batch:NoScheduleon purpose. The worker is the batch workload: give it the toleration inworker.yamland apply the file. - cache has required anti-affinity to itself and already tolerates the batch taint. Three nodes, four replicas: lower the replica count.
- log-agent has to run everywhere, including the batch node. Add a toleration to its template in
agent.yaml.
sh
kubectl get deploy,ds -n peaks-1hrr0s0Everything at its full count and the DaemonSet on all three nodes. The last objective asks which flag kubectl drain needs when a node runs the log agent.