k8s将pod指定到某个节点
1、查看节点标签
kubectl get nodes --show-labels
2、给节点打标签
kubectl label node 10.64.39.219 node=bmd kubectl label node 10.64.39.186 node=bmd
3、指定程序的运行pod
[root@apiserver k8s]# cat selec.yml apiVersion: extensions/v1beta1 kind: Deployment metadata: name: nginx-select-node1 spec: replicas: 2 template: metadata: labels: app: nginx spec: nodeSelector: node: bmd containers: - name: nginx-select-node1 image: nginx:latest ports: - containerPort: 80
4、相关选择节点说明
nodeSelector 在 Kubernetes 中,nodeSelector 是一个用于指定哪些节点可以运行 Pod 的属性。它是一组键值对,其中键表示标签的名称,值表示标签的值。使用 nodeSelector,可以将 Pod 分配给具有特定标签的节点,从而更好地控制应用程序的部署。 下面是一个 nodeSelector 实例,其中标签名为 "disktype",标签值为 "ssd": Copy CodenodeSelector: disktype: ssd 当 Pod 定义中包含 nodeSelector 字段时,Kubernetes 将尝试将 Pod 调度到具有匹配标签的节点上。如果没有满足条件的节点,Pod 将处于挂起状态,直到有符合条件的节点可用。请注意,引用不存在的标签会使 Pod 处于 Pending 状态。 nodeSelector 可以与标签控制器一起使用来确保 Pod 部署在所需的节点上。例如,可以使用标签控制器为所有类型为 SSD 的节点打上 "disktype=ssd" 的标签,并在 Pod 中使用 nodeSelector 字段将应用程序分配给这些节点。 以下是相关知识来源链接: [1]:此链接提供了有关 nodeSelector 字段的详细信息和示例。 nodeName 在 Kubernetes 中,nodename 是节点名称,用于唯一标识集群中的每个节点。可以使用 kubectl get nodes 命令查看节点名称列表。 nodename 可以在调试和故障排除期间十分有用。例如,在操作节点时可能需要指定节点名称来确保正确执行命令,或者查找在特定节点上运行的容器时需要查询节点名称。 另外需要注意的是,nodename 不是将 Pod 调度到特定节点的最佳方法。Kubernetes 通常会使用更高级别的策略来调度 Pod,如 nodeSelector、affinity/anti-affinity 和 taints/tolerations 等机制。如果尝试手动调度 Pod,除非明确知道后果,否则不要依赖 nodename。 以下是相关知识来源链接: [1]:此链接提供了 API 文档,其中包含 nodename 的详细信息,以及如何在 Kubernetes API 中使用它。 [2]:此链接提供了关于如何在调试期间使用 nodename 的示例和说明。
做一个决定,并不难,难的是付诸行动,并且坚持到底。