[root@k8scloude1 pod]# kubectl get pod -o wideNAMEREADYSTATUSRESTARTSAGEIPNODENOMINATED NODEREADINESS GATESpod11/1Running021s10.244.112.158k8scloude2<none><none>
删除pod,删除标签
[root@k8scloude1 pod]# kubectl get pod --show-labelsNAMEREADYSTATUSRESTARTSAGELABELSpod11/1Running032mrun=pod1[root@k8scloude1 pod]# kubectl delete pod pod1 --forcewarning: Immediate deletion does not wait for confirmation that the running resource has been terminated. The resource may continue to run on the cluster indefinitely.pod "pod1" force deleted[root@k8scloude1 pod]# kubectl get pod --show-labelsNo resources found in pod namespace.[root@k8scloude1 pod]# kubectl label nodes k8scloude2 k8snodename-node/k8scloude2 labeled[root@k8scloude1 pod]# kubectl get nodes -l k8snodename=k8scloude2No resources found[root@k8scloude1 pod]# kubectl get nodes -l k8snodename=k8scloudeNo resources found
注意:如果两台主机的标签是一致的,那么通过在这两台机器上进行打分,哪个机器分高,pod就运行在哪个pod上
给k8s集群的master节点打标签
[root@k8scloude1 pod]# kubectl label nodes k8scloude1 k8snodename=k8scloude1node/k8scloude1 labeled[root@k8scloude1 pod]# kubectl get nodes -l k8snodename=k8scloude1NAMESTATUSROLESAGEVERSIONk8scloude1Readycontrol-plane,master7d2hv1.21.0
创建pod,nodeSelector:k8snodename: k8scloude1指定pod运行在标签为k8snodename=k8scloude1的节点上
[root@k8scloude1 pod]# vim schedulepod5.yaml [root@k8scloude1 pod]# cat schedulepod5.yamlapiVersion: v1kind: Podmetadata:creationTimestamp: nulllabels:run: pod1name: pod1namespace: podspec:nodeSelector:k8snodename: k8scloude1containers:- image: nginximagePullPolicy: IfNotPresentname: pod1resources: {}ports:- name: httpcontainerPort: 80protocol: TCPhostPort: 80dnsPolicy: ClusterFirstrestartPolicy: Alwaysstatus: {}[root@k8scloude1 pod]# kubectl apply -f schedulepod5.yamlpod/pod1 created
因为k8scloude1上有污点,所以pod不能运行在k8scloude1上,pod状态为Pending
[root@k8scloude1 pod]# kubectl get podNAMEREADYSTATUSRESTARTSAGEpod10/1Pending09s
删除pod,删除标签
[root@k8scloude1 pod]# kubectl delete pod pod1pod "pod1" deleted[root@k8scloude1 pod]# kubectl get podNo resources found in pod namespace.[root@k8scloude1 pod]# kubectl label nodes k8scloude1 k8snodename-node/k8scloude1 labeled[root@k8scloude1 pod]# kubectl get nodes -l k8snodename=k8scloude1No resources found
3.5 使用亲和性与反亲和性调度podnodeSelector 提供了一种最简单的方法来将 Pod 约束到具有特定标签的节点上 。亲和性和反亲和性扩展了你可以定义的约束类型 。使用亲和性与反亲和性的一些好处有:
- 亲和性、反亲和性语言的表达能力更强 。nodeSelector 只能选择拥有所有指定标签的节点 。亲和性、反亲和性为你提供对选择逻辑的更强控制能力 。
- 你可以标明某规则是“软需求”或者“偏好”,这样调度器在无法找到匹配节点时仍然调度该 Pod 。
- 你可以使用节点上(或其他拓扑域中)运行的其他 Pod 的标签来实施调度约束, 而不是只能使用节点本身的标签 。这个能力让你能够定义规则允许哪些 Pod 可以被放置在一起 。
- 节点亲和性功能类似于 nodeSelector 字段,但它的表达能力更强,并且允许你指定软规则 。
- Pod 间亲和性/反亲和性允许你根据其他 Pod 的标签来约束 Pod 。
- requiredDuringSchedulingIgnoredDuringExecution: 调度器只有在规则被满足的时候才能执行调度 。此功能类似于 nodeSelector, 但其语法表达能力更强 。
经验总结扩展阅读
- 多情总被无情伤 这些星座是爱情里的傻瓜
- JAVA的File对象
- 秋天冰箱的温度怎么调才正确 冰箱不制冷的原因是什么
- 性格坚强的三大星座女 却最让人心疼
- 外出发展 最易发财的星座
- 画饼专家 这些星座男的话不能全信
- 2023年9月13日是剪指甲吉日吗 2023年9月13日是剪指甲的黄道吉日吗
- 工资过10万的十大职业 哪些工作工资超高
- 2023年9月13日是年前洗澡的黄道吉日吗 2023年农历七月廿九年前洗澡吉日
- 十二星座秉承单身主义的原因 遇不到对的人还是享受孤独