是否有一行 kubectl 命令可以在 pod yaml 中添加 nodeSelector?

Is there a one line kubectl command to add the nodeSelector in the pod yaml?

我想知道是否有一行 kubectl 命令可以在 pod yaml 中添加 nodeSelector? (我已经在节点上附加了标签)我正在尝试自动执行此操作,因此我想避免手动下载 yaml 文件并添加 nodeSelector。任何使用 sed 或 kubectl replace 的想法都将不胜感激。

您可以在 pod 规范中添加 nodeSelector

作为k8s doc : nodeSelector是节点选择约束的最简单的推荐形式。 nodeSelector 是 PodSpec 的一个字段。它指定键值对的映射。为了使 pod 有资格在节点上 运行 ,该节点必须将每个指定的键值对作为标签(它也可以有额外的标签)。最常见的用法是一对键值对。

apiVersion: v1
kind: Pod
metadata:
  name: nginx
  labels:
    env: test
spec:
  containers:
  - name: nginx
    image: nginx
    imagePullPolicy: IfNotPresent
  nodeSelector:
    disktype: ssd

更新

我找到了一种方法:

kubectl run --generator=run-pod/v1 -ti --rm test --image=ubuntu:20.04 --overrides='{"spec": { "nodeSelector": {"nodename": "test-node"}}}'

仅供参考,我最终使用了这个命令 kubectl patch deployments DEPLOYMENTNAME -p '{"spec": {"template": {"spec": {"nodeSelector": {"YOURLABEL": "YOURVALUE"}}} }}