Skip to content

Kubernetes: add proxy_jump.node_selector and tolerations - #4459

Open
un-def wants to merge 1 commit into
masterfrom
pr_kubernetes_jump_pod_placement
Open

un-def wants to merge 1 commit into
masterfrom
pr_kubernetes_jump_pod_placement

Conversation

@un-def

@un-def un-def commented Nov 3, 2026

Copy link
Copy Markdown
Collaborator

The jump pod could land on any node. On some clusters, e.g., Nebius, a NodePort is reachable only on the node that runs the pod, so the jump pod is unreachable if that node has no ExternalIP. Users may also want to keep the jump pod off GPU nodes.

  • proxy_jump.node_selector restricts the jump pod to labeled nodes. Items are key=value, key= (an empty value), or key (any value). As nodeSelector can't match any value, all items go into a single required node affinity term.
  • proxy_jump.tolerations items are key[=value][:effect], the kubectl taint format with an optional effect. Without a value, any value is tolerated; without an effect, any effect. An empty key, which would tolerate all taints, is rejected.
  • If tolerations is not set, GPU node taints are autodetected as before, unless node_selector is set, since autodetection considers all nodes, not only the selected ones. tolerations: [] turns autodetection off.

Notes:

  • New values don't apply to an existing jump pod. The docs describe how to apply them with kubectl.

The jump pod could land on any node. On some clusters, e.g., Nebius,
a NodePort is reachable only on the node that runs the pod, so the jump
pod is unreachable if that node has no ExternalIP. Users may also want
to keep the jump pod off GPU nodes.

* proxy_jump.node_selector restricts the jump pod to labeled nodes.
  Items are key=value, key= (an empty value), or key (any value).
  As nodeSelector can't match any value, all items go into a single
  required node affinity term.
* proxy_jump.tolerations items are key[=value][:effect], the kubectl
  taint format with an optional effect. Without a value, any value is
  tolerated; without an effect, any effect. An empty key, which would
  tolerate all taints, is rejected.
* If tolerations is not set, GPU node taints are autodetected as
  before, unless node_selector is set, since autodetection considers
  all nodes, not only the selected ones. tolerations: [] turns
  autodetection off.

Notes:

* New values don't apply to an existing jump pod. The docs describe
  how to apply them with kubectl.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant