k8s将pod指定到某个节点

1、查看节点标签
1
kubectl get nodes --show-labels
2、给节点打标签
1
2
kubectl label node 10.64.39.219 node=bmd
kubectl label node 10.64.39.186 node=bmd
3、指定程序的运行pod
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
[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、相关选择节点说明

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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 的示例和说明。

  

  

  

  

posted @   苍茫宇宙  阅读(2522)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示